在 $(document).ready() 中使用 jQuery 选择器操作由 ng-repeat 填充的元素或 $scope.$on('$viewContentLoaded', myFunc) 证明是徒劳的。是否有一个专门的事件在 ng-repeat 完成时触发?
虽然没有特定的事件信号 ng-repeat 的终止,但利用指令和 ng-repeat 特定的属性提供了一个可行的方法解决方案。
指令
如果您的目标是将事件处理程序设置样式或附加到整个表,则可以使用封装所有 ng-repeat 元素的指令。相反,要寻址特定元素,请在 ng-repeat 中使用指令,该指令将为每个创建的元素执行。
Ng-Repeat 属性
$index, $ first、$middle 和 $last 属性启用触发事件。例如,您可以利用 $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'); }; });
通过以下方式示例此解决方案的实际效果这个笨蛋。
以上是ng-Repeat填充元素完成时是否触发事件?的详细内容。更多信息请关注PHP中文网其他相关文章!