angular

<html>
<body>
4. 依赖注入
    函数定义完整的写法应该像AMD声明一样: var BoxCtrl = ['$scope', '$element', function(s, e){}];
    简单起见就写成了一个函数定义原本的样子,然后再定义参数的名字上做文章起到依赖声明的作用,所以参数的名字不能随便写。
    var BoxCtrl = function($scope, $element){}
6. 数据绑定与模板
    数据-->模板
        使用模板标记直接完成的{{}},在实现上ng自动创建了一个watcher如果作用域变量发生了改变页面表现也改变
        对于使用ng进行的事件绑定,在处理函数中就不需要去关心$digest()的调用ng会自己处理,真正处理的函数不是指定名字的函数而是经过$apply() 包装过得一个
        函数,这个 $apply() 做的一件事,就是调用根作用域 $rootScope 的 $digest()
    模板-->数据
        模板到数据的绑定,主要是通过ng-model来完成的
7. 模板
    7.1 使用ng-include引入一段模板
    7.2 ng-repeat [$index, $first, $middle, $last]
        ng-init 可以再模板中直接赋值,它作用于angular.bootstrap之前,并且定义的变量与$scope作用域无关
    7.3 ng-style可以使用一个结构直接表示当前节点的样式
            <!--<div ng-style="{100,height:1100,backgroundColor:'red'}"></div>-->
        ng-class可以直接地设置当前节点的类
        ng-class-even 和 ng-class-odd 是和 ng-repeat 配合使用的:
            <!--
            <ul ng-init="l=[1,2,3,4]">
                <li ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="m in l">{{ m }}</li>
            </ul>
            -->
        ng-show, ng-hide, ng-switch
        ng-src, ng-href, ng-checked, ng-disabled, ng-muliple, ng-readonly
        这些只是单向绑定,从数据到展示不能反作用于数据。
    7.4 事件绑定
        ng-change
        ng-click
        ng-dblclick
        ng-mousedown
        ng-mouseenter
        ng-mouseleave
        ng-mousemove
        ng-mouseover
        ng-mouseup
        ng-submit
        对于事件对象本身,在函数调用时可以直接使用$event进行传递
    7.5 表单控件
        form
        input
            相关属性为:name名字,ng-model绑定的数据,required是否必填,ng-minlength最小长度,ng-pattern匹配模式,ng-change值变化时的回调
            input控件有一些扩展这些扩展有些有自己的属性:
                input type="number"多了number错误类型,多了max,min属性
                input type="url"多了url错误类型
                input type="email"多了email错误类型
        checkbox:没有验证相关的东西只有选中与不选中两个值
            <!--
            <form name="test_form" ng-controller="TestCtrl">
                <input type="checkbox" name="a" ng-model="a" ng-true-value="AA" ng-false-value="BB" />
                <span>{{ a }}</span>
            </form>
            var TestCtrl = function($scope){
                $scope.a = 'AA';
            }
            -->
        select
            Array:
                <!--
                <html lang="en" ng-app>
                    <head>
                    <meta charset="utf-8">
                    <title>My HTML File</title>
                    <script src="angular.min.js"></script>
                    <script type="text/javascript">
                        var TestCtrl = function($scope){
                            $scope.arr = [{name: 'AA', g: '00', v: '='}, {name: 'BB', g: '11', v: '+'}, {name: 'CC', g: '00', v: '!'}];
                            $scope.a = $scope.arr[1].v;
                            $scope.show = function(){
                            console.log($scope.a);
                            }
                        }
                    </script>
                    </head>
                    <body ng-controller="TestCtrl">
                    <form name="test_form">
                        <select ng-model="a" ng-options="x.v as x.name group by x.g for x in arr" ng-change="show()">
                        <option value="">可以加这个空值</option>
                        </select>
                    </form>
                    </body>
                </html>
                -->
            Object:
                <!--
                <html lang="en" ng-app>
                    <head>
                    <meta charset="utf-8">
                    <title>My HTML File</title>
                    <script src="angular.min.js"></script>
                    <script type="text/javascript">
                        var TestCtrl = function($scope){
                            $scope.obj = {a: {name: 'AA', v: '00', g: '=='}, b: {name: 'BB', v: '11', g: '=='}, c: {name: 'CC', v: '22', g: '++'}};
                            $scope.a = $scope.obj.a.v;
                            $scope.show = function(){
                            console.log($scope.a);
                            }
                        }
                    </script>
                    </head>
                    <body ng-controller="TestCtrl">
                    <form name="test_form">
                        <select ng-model="a" ng-options="v.v as v.name group by v.g for (k, v) in obj" ng-change="show()">
                        <option value="">可以加这个空值</option>
                        </select>
                    </form>
                    </body>
                </html>
                -->
8. 模板中的过滤器:对数据的格式化或者筛选的函数
    orderBy
    filter
        字符串:列表成员中的任意属性值中有这个字符串即为满足条件
        可以使用对象来指定属性名,$表示任意属性 {{data|filter:{name:'A'} }}  {{data|filter:{$:'3'} }}
        自定义过滤:{{data|filter: f}}
                var TestCtrl = function($scope){
                    $scope.data = [
                    {name: 'B', age: 4},  
                    {name: 'A', age: 1},  
                    {name: 'D', age: 3},  
                    {name: 'C', age: 3},  
                    ];
                
                    $scope.f = function(e){
                    return e.age > 2;
                    }
                }
        时间戳data:  {{ a | date: 'yyyy-MM-dd HH:mm:ss' }}
        列表截取limitTo: {{{{ [1,2,3,4,5] | limitTo: 2 }}}}
        大小写 lowercase,uppercase : {{ 'abc' | uppercase }}  {{ 'Abc' | lowercase }}
        <!--
        <html lang="en" ng-app>
            <head>
            <meta charset="utf-8">
            <title>My HTML File</title>
            <script src="angular.min.js"></script>
            <script type="text/javascript">
                var TestCtrl = function($scope){
                    $scope.data = [
                    {name: 'B', age: 4},  
                    {name: 'A', age: 1},  
                    {name: 'D', age: 3},  
                    {name: 'C', age: 3},  
                    ];
                }
            </script>
            </head>
            <body>
            <div ng-controller="TestCtrl">
                <table>
                <tr>
                    <th ng-click="f='name'; rev=!rev">名字</th>
                    <th ng-click="f='age'; rev=!rev">年龄</th>
                </tr>
                <tr ng-repeat="o in data | orderBy: f : rev">
                    <td>{{ o.name }}</td>
                    <td>{{ o.age }}</td>
                </tr>
                </table>
            </div>
            </body>
        </html>
        -->
    </body>
</html>
原文地址:https://www.cnblogs.com/lindsayzhao103011/p/3345583.html