javascript - 在 Angular Directive(指令)中完成 ng-repeat

标签 javascript angularjs angularjs-directive angularjs-ng-repeat

在下面的代码中, Angular Directive(指令)“myscroll”如何知道正在创建哪些 ng-repeat 元素?

<myscroll>
     <div ng-repeat="a in arr">{{a}}</div>
</myscroll>

我知道 $last 事件没有触发到父指令,我该如何解决这个问题?

myapp.directive("myscroll", function () {
    return{
        restrict: "E",
        transclude: true,
        template: "<span class='left'></span><div class='mask' ng-transclude></div><span class='right'></span>",
        link: function (scope, element, attr) {

            scope.$watch("$last",function(){ console.log("ng-repeat rendered") })

        }
    }
})

最佳答案

一个简单的方法是创建一个名为“repeat-done”的新指令,并在“ng-repeat”所在的位置使用它。然后,您可以根据需要通知“myscroll”指令(父作用域)。

<myscroll>
     <div ng-repeat="a in arr" repeat-done>{{a}}</div>
</myscroll>

myapp.directive('repeatDone', [function () {
  return {
    restrict: 'A',
     link: function (scope, element, iAttrs) {

          var parentScope = element.parent().scope();

          if (scope.$last){
               // ng-repeat is completed and you now have access to 'myscroll' scope
               console.log(parentScope);   
          }
        }
      };
    }])

关于javascript - 在 Angular Directive(指令)中完成 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071221/

相关文章:

javascript - 单击按钮不会更改 jquery 中的 .html

javascript - 动画CSS切换

javascript - 将字符串日期格式 "Mon Jun 01 2015 00:00:00 GMT+0100 (IST)"更改为 "YYYY-MM-DD"

angularjs - 在来自外部 Controller $scope 的指令中设置 ng-disabled

javascript - 从父 Controller 访问指令的属性

javascript - 将动态数据传递给 angularjs 指令的正确方法

来自外部 .php 文件的 PHP 变量,在 JavaScript 中?

javascript - 在javascript中的闭包之间使用变量是线程安全的吗?

angularjs - 如果子作用域的父作用域被销毁,子作用域会发生什么

javascript - Angularjs - 资源返回 promise