发表于: 2017-06-26 22:37:01

1 930


今天完成的事情:

今天看了一天AngularJS权威教程。

明天的计划事情:

angular重写登录页,学习$http请求,多重视图和路由、依赖注入、服务、XHR 服务器通信章节。

遇到的问题:

暂无

收获:

摘抄了一些需要注意的知识点:

1.      $scope 对象是定义应用业务逻辑、控制器方法和视图属性的地方。

2.      将应用的业务逻辑都放在控制器中,而将相关的数据都放在控制器的作用域中,这是非常完 美的架构。

3.      AngularJS启动并生成视图时,会将根ng-app元素同$rootScope进行绑定。$rootScope是所 有$scope对象的最上层。

4.      指令在AngularJS中被广泛使用,指令通常不会创建自己的$scope,但也有例外。比如 ng-controllerng-repeat指令会创建自己的子作用域并将它们附加到DOM元素上。

5.      AngularJS中的控制器是一个函数,用来向视图的作用域中添加额外的功能。我们用它来给 作用域对象设置初始状态,并添加自定义行为。

6.      默认情况下,AngularJS在当前作用域中无法找到某个属性时,便会在父级作用域中进行查 找。如果AngularJS找不到对应的属性,会顺着父级作用域一直向上寻找,直到抵达$rootScope 为止。如果在$rootScope中也找不到,程序会继续运行,但视图无法更新。

7.      HTML的形式使用过滤器时,如果需要传递参数给过滤器,只要在过滤器名字后面加冒号 即可。

8.      通过AngularJS模块API中的.directive()方法,我们可以通过传入一个字符串和一个函数来 注册一个新指令。其中字符串是这个指令的名字,指令名应该是驼峰命名风格的,函数应该返回 一个对象。

9.      之前创建的指令中可以指定以元素(E)、属性(A)、类(C)或注释(M)的格式来 调用指令,无论有多少种方式可以声明指令,我们坚持使用属性方式,因为它有比较好的跨浏览器兼容性。

10.    注意,所有以ng前缀开头作为命名空间的指令都是AngularJS提供的内置指令,因此不要把 你自己开发的指令以这个前缀命名。

11.    JavaScript代码中通过run方法来访问$rootScope

12.    内置指令ng-controller的作用是为嵌套在其中的指令创建一个子作用域,避免将所有操作 和模型都定义在$rootScope上。

13.    使用ng-if指令可以完全根据表达式的值在DOM中生成或移除一个元素。如果赋值给ng-if 的表达式的值是false,那对应的元素将会从DOM中移除,否则对应元素的一个克隆将被重新插 入DOM中。

14.    ng-ifno-showng-hide指令本质的区别是,它不是通过CSS显示或隐藏DOM节点,而 是真正生成或移除节点。

15.    当一个元素被ng-ifDOM中移除,同它关联的作用域也会被销毁。而且当它重新加入DOM 中时,会通过原型继承从它的父作用域生成一个新的作用域。

16.    ng-repeat用来遍历一个集合或为集合中的每个元素生成一个模板实例。集合中的每个元素 都会被赋予自己的模板和作用域。

17.    注意,在屏幕可视的区域内使用{{ }}会导致页面加载时未渲染的元素发生闪烁,用ng-bind 可以避免这个问题。

18.    ng-bind指令类似,ng-bind-template用来在视图中绑定多个表达式。

19.    我们应该始终用ngModel来绑定$scope上一个数据模型内的属性,而不是$scope上的属性, 这可以避免在作用域或后代作用域中发生属性覆盖。

20.    当赋值给ng-show指令的 值为false时元素会被隐藏。类似地,当赋值给ng-hide指令的值为true时元素也会被隐藏。



返回列表 返回列表
评论

    分享到