AngularJS 笔记系列(三)模块和作用域

模块:

当 AngularJS
中,将函数代码全部且定义在全局命名空间受到绝对免是啊好主意,全局变量污染会使冲突几带领变充分,调试困难,降低开发效率。上次描绘计时器的
controller 时,我们把 controller
写以了一个大局命名空间受到定义的函数里,这就是是反例。在 Angular
中,模块是概念应用的重中之重方式。模块包含了根本的运用代码。一个施用得分包多独模块,每一个模块内还蕴涵了定义具体效果的代码。

使模块的利益有不少:

  • 保障全局命名空间的干干净净;
  • 好测试;
  • 得复用;
  • 倘应用可以以自由顺序加载代码各个组成部分。

概念模块方法:

angular.module(‘moduleName’,[]);

参数:

  1. name (字符串)

模块的名称

  1. requires (字符串数组)

Angular 的仗注入机制,数组元素也当下定义模块所依靠的模块名称。

 


 

作用域:

作用域(scope)是做 Angular
应用的着力基础。应用之作用域是跟行使之数据模型相关联的,同时作用域也是表达式执行之上下文。$scope
是概念应用工作逻辑,控制器方法与视图属性之地方。

作用域是视图和控制器之间的胶水。在使用渲染并呈现给用户之前,视图中之模板会和作用域进行连续,然后使用会对
DOM 进行设置以便将性变化通知被 AngularJS。这个职能让 XHR请求等 promise
对象的落实转移得非常容易。

$scope 是可以嵌套的,在子$scope中我们得以引用父$scope 的性质,就比如
JavaScript 一样。这个分就是,当我们也子级 DOM
元素创建了一个初的打算域时,其实为是吧子元素创建了一个初的履上下文。

作用域提供了蹲点数据模型变化的力,我们可以以 $apply
机制,将数据模型的扭转于尽应用范围外开展通报。

$rootScope 是 Angular
中极度相近全局作用域的目标。所以并非以其上面附加太多事情逻辑,这跟污染全局作用域是一样的。

$scope
就是一个JavaScript对象,我们得以呢它们长或去除属性,他的备属性都得自动为视图访问到。它是视图和控制器之间的胶水,也是视图与
HTML 的桥。

生命周期

  创建:在创造控制器或者指令时,AngularJS 会同时用$injector
创建一个初的作用域,并在命令或控制器运行时用该作用域传递进入。

  链接:当 Angular 开始运行时,所有的$scope
对象还见面附加或者链条接到视图中。所有创建$scope
对象的函数也会见以本人附加到视图中。

     这些作用域将会晤报当Angular 应用上下文变化时需要周转的函数。

  更新:事件循环运行于$rootScope上,在每个子作用域中展开脏值检查,发现任意变化,即可实施相应的回调函数。

  销毁:当一个$scope 在视图中不再叫用时,他拿为销毁。

 

相关文章