Javascript 执行角度编译意味着什么“;仅一次”;重复一遍?

Javascript 执行角度编译意味着什么“;仅一次”;重复一遍?,javascript,angularjs,Javascript,Angularjs,我读了一些关于角度指令中编译和链接的博客。很多人说,对于ngRepeat实现,compile只执行一次。我检查了它,我看到post链接也只执行了一次。我在angular.js(v1.3.13)中的ngRepeatDirective中添加了断点,我发现post链接也只执行一次 有人能解释一下为什么人们强调编译只执行一次,而post链接也只执行一次 添加断点的位置: …… compile: function ngRepeatCompile($element, $attr) {

我读了一些关于角度指令中编译和链接的博客。很多人说,对于ngRepeat实现,compile只执行一次。我检查了它,我看到post链接也只执行了一次。我在angular.js(v1.3.13)中的ngRepeatDirective中添加了断点,我发现post链接也只执行一次

有人能解释一下为什么人们强调编译只执行一次,而post链接也只执行一次

添加断点的位置:

   ……
    compile: function ngRepeatCompile($element, $attr) {
      debugger;

  ……
     return function ngRepeatLink($scope, $element, $attr, ctrl, $transclude) {
        debugger;
   ……

如果您有以下指令:

  • 具有
    编译
    功能
  • 具有
    链接
    功能
  • 使用
    ng repeat
然后:

  • compile
    函数只调用一次
  • 链接
    函数被调用n次(重复次数)
这是一本书

如果在本例中打开控制台,您将看到
compile
函数被调用一次,而
link
函数被调用四次


希望有帮助

是的,在您的示例中,compile被调用了一次,link被调用了4次,但是您创建了自定义指令,我正在询问ng repeat。另一件事是,我仍然不明白在您的示例中,compile被调用一次,link被调用4次。可能ngRepeat的“仅一次”只有在ngRepeat中使用另一个自定义指令时才有效?@user2449394,jvandemo和您阅读的博客提到的是任何指令(自定义或内置)使用
ng repeat重复的
被编译一次并链接N次。这与
ngRepeat
指令本身无关。我最近回答了一个问题,可以向您解释编译的重要性:非常感谢!现在我明白了。jvandemo也感谢您的博客和早期的帮助!