Altough到处搜索,找不到解决方案 我在删除列表中的 CORRECT 行时遇到问题。
例如我有以下数组:
$scope.rows = [{
"ID": 12,
"customer": "abc",
"image": "abc.jpg",
},{
"ID": 13,
"customer": "klm",
"image": "klm.jpg",
},{
"ID": 14,
"customer": "xyz",
"image": "xyz.jpg",
}];
尝试删除ID = 13的行(将从节点服务器接收ID),代码如下:
Socket.on('delete', function( ID ) {
var a = $scope.rows.indexOf(ID);
$scope.rows.splice(a, 1)
});
但这不会删除正确的行。
如何指定我的参数以删除右侧行:
remove rows("ID" = ID)
答案 0 :(得分:4)
indexOf
搜索数组中的子字符串(而不是关系数组)
试试这个:
var whatIndex = null;
angular.forEach($scope.rows, function(cb, index) {
if (cb.ID === ID) {
whatIndex = index;
}
});
$scope.rows.splice(whatIndex, 1);
答案 1 :(得分:2)
删除当前所选项目:
<a href="#" ng-click="remove($index)">Remove an item</a> //this one is dynamically generated link using ng-repeat
$scope.remove = function (item) {
$scope.retrieveddata.splice(item, 1);
}
您可以使用它的索引删除当前项目。($ scope .retreiveddata是我的数组列表)
答案 2 :(得分:0)
在此函数中传递id
$scope.deleteCurrentId = function (ID) {
for (var i = 0; i <= $scope.row.length; i++) {
if ($scope.row[i].id == ID) {
$scope.row.splice(i, 1);
}
}
};
或
$scope.deleteCurrentId = function (ID) {
angular.forEach($scope.row, function (cb, index) {
if (cb.id == ID) {
$scope.row.splice(index, 1);
}
});
};