首页 >web前端 >js教程 >ng-Repeat填充元素完成时是否触发事件?

ng-Repeat填充元素完成时是否触发事件?

DDD
DDD原创
2024-12-01 07:07:11741浏览

Is There an Event Triggered When ng-Repeat Finishes Populating Elements?

ng-Repeat 填充完成事件

问题

在 $(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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn