Javascript Angular.js ng重复回调
当Javascript Angular.js ng重复回调,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,当ng repeat完成时,我需要发送回调,但我的解决方案不起作用。在我的上一个解决方案中,我使用了一个指令 标记: <div class="results" ng-model="results"> <div class="empl-card" ng-repeat="empl in employees | filter: searchQuery" callback-on-end="alert('callback')"> ... </div&g
ng repeat
完成时,我需要发送回调,但我的解决方案不起作用。在我的上一个解决方案中,我使用了一个指令
标记:
<div class="results" ng-model="results">
<div class="empl-card" ng-repeat="empl in employees | filter: searchQuery" callback-on-end="alert('callback')">
...
</div>
</div>
我在哪里会犯错误?我想你可以用ngInit来做到这一点,如下所示
<div class="results" ng-model="results">
<div class="empl-card" ng-repeat="empl in employees | filter: searchQuery" ng-init="$last && alert('callback')">
...
</div>
</div>
...
执行此操作不需要自定义指令。要实现此目的,需要在控制器中创建一个方法,并在ng重复结束时调用该方法:
(函数(){
元素(文档).ready(函数(){
var-app=angular.module('myApp',[]);
app.controller(“MyCtrl”,函数($scope,$timeout){
$scope.names=['A','B','C','D'];
$scope.onEnd=函数(){
警报(“全部完成”);
};
});
app.directive(“callbackoned”,function()){
返回{
限制:“A”,
链接:函数(范围、元素、属性){
如果(范围$last){
范围$eval(属性回调函数);
}
}
};
});
引导(文档,['myApp']);
});
}());代码>
{{name}}
检查这里。已为repeatEnd创建自定义指令
这应该对你有帮助
<div class="results" ng-model="results">
<div class="empl-card" ng-repeat="empl in employees | filter: searchQuery" ng-init="$last && alert('callback')">
...
</div>
</div>
<h3 ng-repeat="name in names" repeat-end="onEnd()">{{name}}</h3>
angular.element(document).ready(function() {
var app = angular.module('repApp', []);
app.controller("MainCtrl", function($scope, $timeout) {
$scope.names = ['user1', 'user2', 'user3'];
$scope.onEnd = function() {
$timeout(function() {
alert('all done');
}, 1);
};
});
app.directive("repeatEnd", function() {
return {
restrict: "A",
link: function(scope, element, attrs) {
if (scope.$last) {
scope.$eval(attrs.repeatEnd);
}
}
};
});
angular.bootstrap(document, ['repApp']);
});