我使用 Angular ng-repeat 显示 $scope.currentMessageList
数组
我还有一个通过 ng-click 绑定(bind)到删除函数的删除按钮,如下所示:
remove: function () {
for (var i = 0; i < 25; i++) {
var index = i;
$scope.currentMessageList.splice(index, 1);
console.log($scope.currentMessageList.length + 'left');
}
}
这个集合中有25个项目,当我调用remove函数时, 我得到这个输出:
24left
23left
22left
21left
20left
19left
18left
17left
16left
15left
14left
13left
13times X 12left
如果我用 angular.forEach 替换 for 循环 我只得到一次“12 left”,但它仍然不会删除超过 13 个项目
我也尝试过使用 angular.apply,但我得到摘要已在进行中错误
最佳答案
在遍历数组时执行拼接
是一个坏主意。
你应该更换
for( var i = 0; i < 25; i++ ){
var index = i;
$scope.currentMessageList.splice( index, 1 );
console.log($scope.currentMessageList.length + 'left');
}
通过一个简单的
$scope.currentMessageList.splice( 0, 25 );
关于javascript - for 循环内的 Array.splice 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723049/