在AngularJS的指令功能的执行顺序(Order of execution of directi

2019-08-31 10:06发布

什么是指令功能执行的顺序? 该文件似乎并没有解决这个问题。

防爆

  1. 模板/ templateUrl(评价)
  2. controllerFn
  3. compileFn
  4. linkFn

回答

从回答如下: http://plnkr.co/edit/79iyKSbfxgkzk2Pivuak (plunker显示嵌套和兄弟指令)

  1. 模板被解析
  2. compile()以编译内模板所做的更改的增殖下降到逻辑函数)
  3. controller()
  4. preLink()
  5. postLink()

Answer 1:

预连接功能:子元素之前执行链接。 没有安全做DOM转型,因为编译器链接功能将无法找到正确的元素联系起来。

联邮功能:子元素之后执行的链接。 它是安全的DOM转型中的连接后功能。

以上摘录从官方文档取指令 。

因此,要回答你的问题, 邮政联/ Link功能是何时/何地,你可以放心地在element.children操作()。



Answer 2:

在相关的注意,我在这里的整个DOM EXEC命令的理解。

这里是一个演示(打开的浏览器JS控制台)

由于使用此指令DOM foo

  <div id="1" foo>
    one
    <div id="1_1" foo>one.one</div>
  </div>

  <div id="2" foo>two</div>

... AngularJS会遍历DOM - 两次 - 在深度优先顺序:

第一通foo.compile()

1)编译:1

2)编译:1_1

3)编译:2

第二通:foo.controller()向下遍历; foo.link(),而回溯

控制器:1

控制器:1_1

链接:1_1

链接:1

控制器:2

链接:2



文章来源: Order of execution of directive functions in AngularJS