AngularJS 笔记连串(三)模块和功效域

模块:

在 AngularJS
中,将函数代码全体都定义在全局命名空间中相对不是什么好主意,全局变量污染会使争辩概率变大,调节和测试困难,降低开发作用。上次写计时器的
controller 时,大家把 controller
写在了1个大局命名空间中定义的函数里,那就是反例。在 Angular
中,模块是概念应用的要害措施。模块包罗了要害的运用代码。3个利用能够涵盖四个模块,每三个模块内都富含了定义具体效果的代码。

采纳模块的便宜有好多:

  • 有限支撑全局命名空间的卫生;
  • 便利测试;
  • 能够复用;
  • 使利用能够以自由顺序加载代码各类部分。

概念模块方法:

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

参数:

  1. name (字符串)

模块的名称

  1. requires (字符串数组)

Angular 的重视性注入机制,数组成分为最近定义模块所重视的模块名称。

 


 

作用域:

成效域(scope)是构成 Angular
应用的核心基础。应用的功效域是和利用的数据模型相关联的,同时功用域也是表明式执行的上下文。$scope
是概念应用工作逻辑,控制器方法和视图属性的地点。

成效域是视图和控制器之间的胶水。在利用渲染并突显给用户此前,视图中的模板会和成效域实行一而再,然后利用会对
DOM 实行安装以便将品质变化公告给 AngularJS。这些功用让 XH途观请求等 promise
对象的兑现变得分外不难。

$scope 是能够嵌套的,在子$scope中大家得以引用父$scope 的属性,就好像JavaScript 一样。这些分层正是,当大家为子级 DOM
成分创立了1个新的效用域时,其实也是为子成分创设了三个新的实施上下文。

成效域提供了监视数据模型变化的能力,我们得以选拔 $apply
机制,将数据模型的转移在整体应用范围内进行通报。

$rootScope 是 Angular
中最相近全局效能域的指标。所以并非在它上面附加太多事情逻辑,那跟污染全局成效域是同等的。

$scope
就是3个JavaScript对象,大家能够为它丰盛或然去除属性,他的兼具属性都足以自行被视图访问到。它是视图和控制器之间的胶水,也是视图与
HTML 的大桥。

生命周期

  创制:在创造控制器可能指令时,AngularJS 会同时用$injector
创制1个新的成效域,并在指令或然控制器运营时将该效用域传递进入。

  链接:当 Angular 开头运转时,全体的$scope
对象都会附加也许链接到视图中。所有成立$scope
对象的函数也会将自家附加到视图中。

     那个作用域将会登记当Angular 应用上下文变化时索要周转的函数。

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

  销毁:当二个$scope 在视图中不再被亟需时,他将被销毁。

 

相关文章