ng directive compile pre-link post-link

原文链接: http://www.jb51.net/article/58229.htm


1、ng在link之前编译所有的指令,然后link又分为 pre-link 与 post-link阶段
compile与pre-link 的执行顺序是依次执行的,但是 post-link正好相反
2、若你在定义指令的时候只使用了一个link函数,那么 ng会把这个函数当成 post-link来处理
3、当运行包含子指令的指令post-link时,反向的post-link规则可以保证它的子指令的post-link是已经运行过的。eg,运行level-one指令的post-link函数时,能保证 level-two和level-three的post-link其实都已经运行过了。
---》post-link是最安全或者默认的写业务逻辑的地方
4、compile时 tElem是 template element(最初的模板元素)
compile后,link阶段 iElem 是tElem的实例化对象,并提供 一个scope对象

5、ng为我们提供了一个附加的 hook机制那就是 pre-link, 一个元素的 pre-link函数能保证运行在它所有的子指令的post-link与pre-link运行之前执行

转载请注明出处
水平有限,错误在所难免,抛砖引玉,意在交流学习
原文地址:https://www.cnblogs.com/wenhandi/p/6002490.html