AngularJS如何“倾听”模型中的变化?

这个问题在这里已经有了答案:

  • 数据绑定在AngularJS中如何工作? 13个答案

  • 去年,William Moss就Angular的$ watch流程及其对性能的影响做了精彩的演讲。 强烈推荐! 请参阅此处的说明:https://www.youtube.com/watch?v=wbcJfg-d5nI


    每次在浏览器中加载网页时,AngularJS应用程序的生命周期分为三个阶段。 以下部分描述了AngularJS应用程序的这些阶段。

    Bootstrap阶段

    AngularJS生命周期的第一阶段是引导阶段,当AngularJS JavaScript库被下载到浏览器时发生。 AngularJS初始化自己的必要组件,然后初始化ng-app指令所指向的模块。 该模块被加载,并且任何依赖项都被注入到您的模块中,并可用于模块中的代码。

    编译阶段

    AngularJS生命周期的第二阶段是HTML编译阶段。 最初当加载网页时,DOM的静态形式被加载到浏览器中。 在编译阶段,静态DOM被替代为代表AngularJS视图的动态DOM。

    该阶段涉及两部分:遍历静态DOM并收集所有的指令,然后将指令链接到AngularJS内置库或自定义指令代码中的相应JavaScript功能。 这些指令与范围相结合以产生动态或实时视图。

    运行时数据绑定阶段

    AngularJS应用程序的最后阶段是运行阶段,直到用户重新加载或导航离开网页为止。 此时,范围内的任何更改都会反映到视图中,并且视图中的任何更改都会直接在范围内更新,从而使作用域成为视图的单一数据源。

    AngularJS的行为与传统的绑定数据方法有所不同。 传统方法将模板与从引擎接收的数据组合在一起,然后在每次数据更改时操作DOM。 AngularJS只编译DOM一次,然后根据需要链接编译好的模板,使其比传统方法更高效。

    从Brad Dayley的Learning AngularJS书中无耻地取消了。

    此过程在Angular网站的范围生命周期部分中有详细介绍。 请向下滚动到'范围生命周期'部分。

    链接地址: http://www.djcxy.com/p/23113.html

    上一篇: How does AngularJS "listen" to changes in the model?

    下一篇: How Angular $scope.$watch works?