我读了一些关于角度指令中的编译和链接的博客。很多人说编译只执行一次ngRepeat实现。我检查了它,我看到帖子链接也只执行了一次。我在 angular.js (v1.3.13) 的 ngRepeatDirective 中添加了断点,我看到帖子链接也只执行一次。
有人可以解释为什么人们强调编译只执行一次,而帖子链接也只执行一次。
我添加断点的地方:
……
compile: function ngRepeatCompile($element, $attr) {
debugger;
……
return function ngRepeatLink($scope, $element, $attr, ctrl, $transclude) {
debugger;
……
如果你有一个指令:
- 具有
compile
功能 - 具有
link
功能 - 使用
ng-repeat
重复
然后:
compile
函数调用一次link
函数称为 n 次(重复次数)
这是一个工作示例。
如果在示例中打开控制台,您将看到 compile
函数被调用一次,link
函数被调用 4 次。
希望对您有所帮助!