发表于: 2017-01-09 02:32:33

1 1536


今天完成的事情:看了angularjs权威指南的前几章,跟着敲代码,感觉这本书挺不错的,挺适合我们这种新手入门看。

明天计划完成的事情:继续看angularjs权威指南,学习自定义指令相关的知识。

遇到的问题:书中关于$render $setViewValue $parsers $formatters 这几个对象不太明白,之后也查了资料,但还是不太会用。

收获:

1.

$scope对象的职责是承载DOM中指令所共享的操作和模型
操作指的是$scope上的标准JS方法;
模型指的是$scope上保存的包含瞬时状态数据的JS的JS对象。持久化状态的数据应该保存到服务中,  服务的作用是处理模型的持久化;
出于技术和架构方面的原因,绝对不要直接将控制器中的$scope赋值为值类型对象。DOM中应该始终通过点操作符.来访问数据;

控制器应该尽可能简单;

2.

对于字符串、数字和布尔型变量,是值复制;而数组、对象和函数则是引用复制
比如当子作用域和父作用域有相同的变量,这个变量是字符串、数字或者布尔型,那么
父子作用域只有继承关系没有双向绑定关系;而如果是数组、对象或者函数的话,就是
双向绑定的,相当于一个指针。
这个特性是所有会创建子作用域的指令共有的,比如ng-chontroller ng-include ng-switch ng-repeat ng-view ng-if;
如果一个DOM元素同时有ng-controller和ng-include,那么作用域都是ng-controller的

ng-include不会自己创建一个外部作用域继承和一个新的子作用域

3.

在angular中,<form>标签被从底层扩展了一系列高级功能,包括表单验证等。原生HTML表单并不会提供这些功能。

4.

默认情况下,如

scope:{

   someProperty:'@'

}


定义了指令中的属性名是some-property,但是如果想自己取名

scope:{
someProperty:'@someAttr'
}

那属性名就变成了some-attr;
其中属性值就被赋给了scope信作用域里面的someProperty值



返回列表 返回列表
评论

    分享到