javascript - ng-repeat 完成事件

标签 javascript jquery angularjs angularjs-ng-repeat document-ready

我想用表格调用一些针对 div 的 jQuery 函数。该表由 ng-repeat 填充。

当我调用它时

$(document).ready()

我没有结果。

还有

$scope.$on('$viewContentLoaded', myFunc);

没用。

有没有什么方法可以在 ng-repeat 填充完成后立即执行功能?我已阅读有关使用自定义 directive 的建议,但我不知道如何将它与 ng-repeat 和我的 div 一起使用...

最佳答案

确实,您应该使用指令,并且没有事件与 ng-Repeat 循环的末尾相关联(因为每个元素都是单独构造的,并且有自己的事件)。但是 a) 使用指令可能就是您所需要的,并且 b) 您可以使用一些 ng-Repeat 特定属性来制作“on ngRepeat finished”事件。

具体来说,如果您只想为整个表格设置样式/添加事件,您可以在包含所有 ngRepeat 元素的指令中执行此操作。另一方面,如果你想具体处理每个元素,你可以在 ngRepeat 中使用一个指令,它会在每个元素被创建后作用于它。

然后,有 $index$first$middle$last 属性你可以用于触发事件。所以对于这个 HTML:

<div ng-controller="Ctrl" my-main-directive>
  <div ng-repeat="thing in things" my-repeat-directive>
    thing {{thing}}
  </div>
</div>

你可以像这样使用指令:

angular.module('myApp', [])
.directive('myRepeatDirective', function() {
  return function(scope, element, attrs) {
    angular.element(element).css('color','blue');
    if (scope.$last){
      window.alert("im the last!");
    }
  };
})
.directive('myMainDirective', function() {
  return function(scope, element, attrs) {
    angular.element(element).css('border','5px solid red');
  };
});

Plunker 中查看实际情况.希望对您有所帮助!

关于javascript - ng-repeat 完成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471129/

相关文章:

jQuery:将文本转换为整数(输入值)时出现问题

javascript - ng-class 在 ng-click 条件下不工作

javascript - 无法读取未定义的属性 'push'

AngularJS在连接或断开连接到firebase时更新服务值

javascript - 在javascript中压平多级/嵌套数组

javascript - js 代码在 Rails 中不起作用

javascript - Bootstrap 网格缩略图,单击时可展开预览

javascript - Owl Carousel 导航缺陷

javascript - 从数组中选择一个随机字符串

jquery - 仅执行一次函数