12bet,的读书笔记

模块

使用模块

12bet,通过angular.module('myApp', [])来声明模块,接受两个参数:

  1. name-字符串:模块的名称
  2. requires-字符串数组:模块的依赖列表

angular.module('myApp')则是引用模块

模块的好处

12bet,使用模块能给我们带来许多好处,比如:

  • 12博体育,保持全局命名空间的清洁;
  • 编写测试代码更容易,并能保持其清洁,以便更容易找到互相隔离的功能;
  • 易于在不同应用间复用代码;
  • 使应用能够以任意顺序加载代码的各个部分;

作用域

作用域和$scope

12bet,应用的作用域是和应用的数据模型相关联的,同时作用域也是表达式执行的上下文。$scope对象是定义应用业务逻辑、控制器方法和视图属性的地方。

作用域是应用状态的基础。基于动态绑定,我们可以依赖视图在修改数据时立刻更新$scope,也可以依赖$scope在其发生变化时立刻重新渲染视图。

$scope可以进行嵌套,嵌套通过原型继承实现,可以引用父级$scope中的属性,其就是一个普通的JavaScript对象,它的所有属性,都可以自动被视图访问到

创建作用域

ng-app的元素会和$rootScope进行绑定,$rootScope是AngularJS中最接近全局作用域的对象,12博体育,是所有$scope对象的最上层

ng-controller则会在其声明的元素上创建一个新的$scope对象,并进行嵌套

作用域的功能

作用域有以下的基本功能:

  • 提供观察者以监视数据模型的变化;
  • 可以将数据模型的变化通知给整个应用,甚至是系统外的组件;
  • 可以进行嵌套,隔离业务功能和数据;
  • 给表达式提供运算时所需的执行环境。

作用域包含了渲染视图时所需的功能和数据,它是所有视图的唯一源头,可以将作用域理解成视图模型(view model)

$scope生命周期

  1. 创建:在创建控制器或指令时,AngularJS会用$injector创建一个新的作用域,并在这个新建的控制器或指令运行时将作用域传递进去。
  2. 链接:当Angular开始运行时,所有的$scope对象都会附加或者链接到视图中。所有创建$scope对象的函数也会将自身附加到视图中。这些作用域将会注册当Angular应用上下文中发生变化时需要运行的函数。这些函数被称为$watch函数,Angular通过这些函数获知何时启动事件循环。
  3. 更新:当事件循环运行时,它通常执行在顶层$scope对象上(被称作$rootScope),每个子作用域都执行自己的脏值检测。每个监控函数都会检查变化。如果检测到任意变化,$scope对象就会触发指定的回调函数。
  4. 销毁:当一个$scope在视图中不再需要时,这个作用域将会清理和销毁自己。也可以使用这个$scope上叫做$destory()的方法来清理这个作用域。
12bet  网站地图  12博bet  12博娱乐