zoukankan      html  css  js  c++  java
  • Angularjs(一)

    1.什么是angular?

      Angular诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC(Model–view–controller ;模块化-视图-控制器).

      angular的一些特性:模块化、自动化双向数据绑定、语义化标签、依赖注入等等.

     

    2.定义控制器:

      controller("控制器名字",["依赖",function(形参){

      }]}

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css" >
            [ng-cloak]{display:none;}    //使用ng-clock时要在style中引入这个属性样式,否则有时会不起作用
        </style>
    </head>
    <body>
    
    <ul ng-controller="controllerTest">
            <li>{{name}}</li>
                    // 解决双花括号闪烁的方法
            <li ng-bind="name"></li>
            <li ng-cloak>{{name}}</li> 
        
            <li ng-bind-template="{{name}}"></li>
            
        </ul>
        <script src="public/libs/angular/angular.min.js"></script>  //引入angular,js 
        <script>
            var App = angular.module("App",[]); 
            // 定义控制器
            App.controller("controllerTest",['$scope',function(akshfksdjhf){  //依赖的服务,把依赖的服务注入到处理函数中去
                akshfksdjhf.name = "jack"
            }])
        </script>                        

    3.事件

    <div ng-controller="controllerTest">
            <button ng-click="fclick()" ng-dbl-click="fdbclick()">单击</button>
            <button ng-dblclick="fdbclick()">双击</button>
            聚焦:<input type="text" name="" ng-focus = "ffocus()">
            失焦:<input type="text" name="" ng-blur = "fblur()">
            <button ng-mouseover = "fmouseover()">移入</button>
            <button ng-mouseleave = "fmouseleave()">移出</button>
        </div>
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
            // 定义控制器
        App.controller("controllerTest",['$scope',function($scope){ 
                // 都是往$scope这个对象上面去添加属性和方法
                $scope.fclick = function (){
                    alert("单击")
                }
                $scope.fdbclick = function (){
                    alert("双击")
                }
                $scope.ffocus = function (){
                    alert("聚焦")
                }
                $scope.fblur = function (){
                    alert("失焦")
                }
                $scope.fmouseover = function (){
                    alert("移入")
                }
                $scope.fmouseleave = function (){
                    alert("移出")
                }
            }])
        </script>

    4.ng-init指令

      ng-init指令可以初始化模块model的数据

    <div ng-controller="controllerTest" ng-init="name='jack';age=40">
            <h1>{{name}}</h1>          //jack
            <h1>{{age}}</h1>          //40
        </div>
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
            // 定义控制器
            App.controller("controllerTest",['$scope',function($scope){ 
                $scope.name = "mack";
            }])
        </script>

    5.数据绑定

    <div ng-controller="controllerTest">
            <ul>
                <li ng-repeat="value in arr1">{{value.name}}{{value.age}}</li>  <!--遍历数组 -- >
            </ul>
            <ul>
                <li ng-repeat="val in arr2" ng-switch on="val">
                    <span ng-switch-when="css">{{val}}</span>   <!--当val=css时显示-->
                </li>
            </ul>
        </div>
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
            // 定义控制器
    
            App.controller("controllerTest",['$scope',function($scope){ 
                $scope.arr1 = [
                    {name : "jack",age : "20"},
                    {name : "jack1",age : "21"},
                    {name : "jack2",age : "22"}
                ];
                $scope.arr2 = ["html","css","js"]
            }])
        </script>

    6.内置过滤器

        内置过滤器 9个:

    1. currency (货币处理),如果不传递参数,默认是美元符

    2. date (日期格式化)

    3. filter(匹配子串)

    4. json(格式化json对象) 跟stringify相同 没有参数

    5. limitTo(限制数组长度或字符串长度)

    6. lowercase(小写) 没有参数

    7. uppercase(大写) 没有参数

    8. number(格式化数字) [参数]

    9. orderBy(排序) [name,boolean]

     1 <div ng-controller="controllerTest">
     2         <ul>
     3             <li>{{num1|currency:"¥"}}</li>
     4             <li>{{ndate|date:"yyyy/MM/dd hh:mm:ss EEE"}}</li>
     5             <li>{{arr|filter:"1" }}</li>
     6             <li>{{arrobj|filter:{age:12} }}</li>
     7             <li>{{arrobj|json}}</li>
     8             <li>{{str|limitTo:2}}</li>
     9             <li>{{num1|number:4}}</li>
    10             <li>{{str|uppercase|lowercase}}</li>
    11             <li>{{arrobj|orderBy:age:false }}</li>
    12             <li>{{num1 |zdy}}</li>
    13         </ul>
    14     </div>
    15 
    16 
    17 
    18     <script src="public/libs/angular/angular.min.js"></script>
    19     <script>
    20         var App = angular.module("App",[]); 
    21         // 定义控制器
    22 
    23         App.controller("controllerTest",['$scope',function($scope){
    24             $scope.num1 = 456; 
    25             $scope.ndate = new Date();
    26             $scope.arr = ["111","128","895","54"]
    27             $scope.arrobj = [
    28                 {name:"jack",age:12,phone:"456789112"},
    29                 {name:"jack5",age:142,phone:"456789112"},
    30                 {name:"3",age:188,phone:"456789112"},
    31             ]
    32             $scope.str = "hello"
    33             $scope.str2 = "wwww"
    34         }])
    35         App.filter("zdy",function(){
    36                 return function(num1){
    37                     console.log(num1)
    38                     return "hello" + num1;
    39                 }
    40             })
    41     </script>

    7.依赖注入

      声明式依赖注入:

    App.controller("controllerTest01",['$scope',function($scope){   
        //写在这个数组里面的称为服务,依赖了一系列的服务,当你需要用到的时候就依赖,然后注入到处理函数中去
    }])

      推断式依赖注入:(不推荐,影响效率)

    App.controller("controllerTest01",function($scope,$http,$log){ 
          //依赖的完整名称,系统会根据实参数进行查找
    })

    8.内置服务:

       --定时器:$timeout,$interval

    <div ng-controller="controllerTest">
            <ul>
                <li>{{taday}}</li>
                <li>{{now|date:"yyyy/MM/dd hh:mm:ss EEE"}}</li>
            </ul>
        </div>
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
            // 定义控制器
            App.controller("controllerTest",function($scope,$timeout,$interval){
                $scope.taday = "你好"
                $timeout (function(){
                    $scope.taday = "现在是什么时间?"
                    $interval (function(){
                        $scope.now = new Date()
                    },100)
                },1000)
            })
        </script>

      

      --$location

    <div ng-controller="controllerTest01">
            <ul>
                <li>绝对路径:{{absurl}}</li>
                <li>服务:{{host}}</li>
                <li>查询字符串(参数):{{search}}</li>
                <li>端口号:{{port}}</li>
                <li>协议:{{protocol}}</li>
                <li>哈希(锚点):{{hash}}</li>
            </ul>
        </div>
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
            App.controller("controllerTest01",['$scope','$location',function($scope,$location){  
                console.log($location)
                $scope.absurl = $location.absUrl();
                $scope.host = $location.host();
                $scope.port = $location.port();
                $scope.search = $location.search();   //对http有要求
                $scope.protocol = $location.protocol();
                $scope.hash = $location.hash();
            }])
    
        </script>

      --$log:(对console的封装)

    <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]); 
    
            App.controller("controllerTest01",['$scope','$location','$timeout','$interval',"$log",function($scope,$location,$timeout,$interval,$log){
                $log.log("普通输出");
                $log.warn("警告");
                $log.error('错误')
                $log.info("普通")
            }])
    
    </script>

       --$filter:

    <div ng-controller="controller01">
            <ul>
                <li>{{price}}</li>
                <li>{{str}}</li>
                <li>{{str1}}</li>
            </ul>
        </div>
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]);
    
            App.controller("controller01",['$scope','$filter',function($scope,$filter){
                // $filter可以引入九种内置的过滤器,这个是过滤器的第二种用法
                $scope.price = 99.99;
                var currency = $filter('currency');
                $scope.price = currency($scope.price);
    
                $scope.str = "hello angular";
                var uppercase = $filter('uppercase');
                $scope.str = uppercase($scope.str);
    
                $scope.str1 = $filter('limitTo')($scope.str,5)
            }])
    
        </script>

       -$http:

    <div ng-controller="controller01">
            <ul>
    
            </ul>
        </div>
    
    
    
        <script src="public/libs/angular/angular.min.js"></script>
        <script>
            var App = angular.module("App",[]);
    
            App.controller("controller01",['$scope','$filter','$http',function($scope,$filter,$http){
                // $http 本质是对ajax的封装,放到服务底下运行
                // 1.5以上使用then方法,类似于promise中的then
                // 1.5以下就直接使用success方法和error方法
                $http({
                    method: 'GET',
                    url: './02.json',
                    params : {    //get请求的参数
                        uname : 'aaaa',
                        age : 30
                    }
                }).then(function(data){
                    console.log(data);     //封装过的,该对象底下的data属性放的是数据
                    console.log(data.data);
                },function(err){
                    console.log(err)
                });
    
                $http({    
                    method : "POST",
                    url : "/sendData",
                    headers : {   //post请求最好设置请求头
                        "content-type" : "application/x-www-form-urlencoded"
                    },
                    data : {    //post请求的参数
                        uname : "aaa",
                        age : 30
                    }
                }).then(function(data){
                    console.log(data)
                    console.log(data.data.data);   //想要的后台的数据
                },function(err){
                    console.log(err);
                })
    
            }])
    </script>
  • 相关阅读:
    SharePoint:扩展DVWP 第33部分:修改DVWP中的合计和分类汇总
    通过SharePoint Web服务更新审批状态
    SharePoint:扩展DVWP 第29部分:修改Remove模版上的表单操作工作流
    SharePoint:扩展DVWP 第27部分:为DVWP添加一个备用编辑模版
    SharePoint 2010之Visio Services入门1-2-3
    一步一步开发属于自己的SharePoint 2010工作流
    在SharePoint 2010中创建自定义字段类型
    SharePoint:扩展DVWP 第25部分:通过SPServices创建列表项实现审计跟踪
    欢迎参加天津PDC Party的活动
    SharePoint:扩展DVWP 赠送部分:当“找不到匹配项”时修复Insert表单操作
  • 原文地址:https://www.cnblogs.com/1234wu/p/10510880.html
Copyright © 2011-2022 走看看