我使用ng-repeat finish事件在ng-repeat完成后触发一个函数。 以下是ng-repeat代码
<tr ng-if="allAccounts.length > 0" ng-repeat="account in allAccounts" on-finish-render="ngRepeatFinished">
自定义指令是:
app.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
scope.$watch(scope.allAccounts, function() {
if (scope.$last === true) {
$timeout(function () {
scope.$emit(attr.onFinishRender);
});
}
});
}
}
});
我在控制器中调用了我的函数:
$scope.$on('ngRepeatFinished', function(ngRepeatFinishedEvent) {
callDataTable('accountListTable');
});
当我第一次使用ng-repeat触发器时它正常工作但是当我改变模型的值,即'allAccounts'时,它不会再次调用完成事件&amp; tr没有反映出来。
如果有人知道请给我一个有效的解决方案。 非常感谢!