Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js ng重复回调_Javascript_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

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']);
});