我是开发cordova angularjs的初学者 我有一个问题,当我点击删除链接,我删除李的最后一个元素,但我想删除这个李选择不是最后一个李
问题:
我的代码html:
<ul class="list">
<div ng-repeat="categorie in categorieData">
<li class="item" id="item{{categorie.idcategorie}}">
<a href="" ng-click="SupprimerCategorie(categorie.idcategorie)"> <i class="fa fa-trash-o fa-fw"></i> </a> <a href="" ng-click="ModifierCategorie(categorie.idcategorie)"> <i class="fa fa-pencil fa-fw" ></i></a>{{categorie.nomcategorie}}
</li>
</div>
</ul>
我的控制员:
$scope.SupprimerCategorie=function(idcategorie) {
var confirmPopup = $ionicPopup.confirm({
title: 'Suppression Categorie',
template: 'Etes-vous sur de vouloir supprimer ce categorie?',
});
confirmPopup.then(function(res) {
if (res) {
$http({method: 'DELETE', url: 'http://127.0.0.1:8080/elodieService/categories/'+ idcategorie}).
success(function(data, status, headers, config) {
$location.path("/CreationCategorie");
//remove li
var index = $scope.categorieData.indexOf(idcategorie);
$scope.categorieData.splice(index, 1);
// $("#item"+idcategorie).remove();
console.log('You clicked on "OK" button');
}).
error(function(data, status, headers, config) {
});
}
else {
$location.path("/CreationCategorie");
console.log('You clicked on "Cancel" button');
}
});
}
答案 0 :(得分:1)
您遇到了如何在数组中找到对象的问题。由于您传递categorie.idcategorie
属性,因此无法在数组中找到相应的对象。因此index
最终为-1
而splice(-1, 1)
的确意味着“删除最后一项”。
应该是:
$scope.SupprimerCategorie = function(categorie) {
// ...
$http({
method: 'DELETE',
url: 'http://127.0.0.1:8080/elodieService/categories/' + categorie.idcategorie
}).
success(function(data, status, headers, config) {
$location.path("/CreationCategorie");
var index = $scope.categorieData.indexOf(categorie);
$scope.categorieData.splice(index, 1);
}).
error(function(data, status, headers, config) {});
// ...
};
将整个对象传递给删除函数:
ng-click="SupprimerCategorie(categorie)"