首页 > 代码库 > AngularJs学习笔记(慕课网)

AngularJs学习笔记(慕课网)

1. Controller使用过程中的注意点

  1. 不要试图去复用Controller, 一个控制器一般只负责一小块视图
  2. 不要在Controller中操作DOM, 这不是控制器的职责. 封装在指令里. 
  3. 不要在Controller中做数据格式化, ng有很好用的表单控件
  4. 不要在Controller里面做数据过滤操作, ng有$filter服务
  5. 一般来说, Controller是不会互相调用的, 控制器之间的交互会通过事件进行  ---> 这是强耦合

2. 

<html ng-app>
    <div>
        <input ng-model="greeting.text"/>
        <p>{{greeting.text}}, Angular</p>
    </div>
    ....
    <script src="js/angular-1.3.0.js"></script>
<html>

则p标签中的值会随着input里的输入进行改变. 

启动后, 会找ng-app中的指令. 找到ng-model后会生成greeting.text数据模型, 这个模型挂载scope根目录下, 这样所有的{{greeting.text}}都可以获得其值

 

3. Angularjs的MVC是借助于$scope实现的

作用域也是有层次结构的, 如果在内层作用域中没有找到值则会向上去找, 类似JS中的原型查找

 

4. 关于$scope

  1. $scope是一个POJO(Plain Old JavaScript Object)
  2. $scope提供了一些工具方法$watch()/$apply()
  3. $scope是表达式的执行环境(或者叫作用域)
  4. $scope是一个树形结构, 与DOM标签平行
  5. 子$scope对象会继承父$scope上的属性和方法
  6. 每一个Angular应用只有一个根$scope对象(一般位于ng-app上)
  7. $scope可以传播事件, 类似DOM事件, 可以向下也可以向上
  8. $scope不仅是MVC的基础, 也是后面实现双向数据绑定的基础
  9. 可以用angular.element($0).scope()进行调试
  10. $scope的生命周期: Creation->Watcher registration->Model mutation->Mutation observation->Scope destruction

 

AngularJs学习笔记(慕课网)