Angularjs:我如何知道何时使用“编译”何时在指令中使用“链接”?

时间:2016-07-25 06:31:01

标签: angularjs hyperlink compilation

我对angularjs很新。我对指令中的链接和编译用法有点混淆。谁能告诉我在哪些场景中我们必须使用链接和编译。

2 个答案:

答案 0 :(得分:2)

编译阶段

当加载DOM时,Angular启动编译阶段,,它从上到下遍历标记,并在所有指令上调用compile。从图形上看,我们可以这样表达:

说明儿童编译循环的图像

值得注意的是,在这个阶段,编译函数获取的模板是源模板(而不是实例模板)。

链接阶段

DOM实例通常只是源模板呈现给DOM的结果,但它们可以通过ng-repeat创建,也可以动态引入。

每当带有指令的元素的新实例呈现给DOM时,链接阶段就会开始。

在这个阶段,Angular调用控制器,预链接,迭代子节点,并在所有指令上调用post-link,如下所示:

下面的链接将为您提供编译与链接的清晰概念。

Angular directives - when and how to use compile, controller, pre-link and post-link

http://odetocode.com/blogs/scott/archive/2014/05/28/compile-pre-and-post-linking-in-angularjs.aspx

答案 1 :(得分:0)

  

What is the difference between compile and link function in angularjs

已经回答堆栈溢出并有一个很好的解释