如何删除angularjs中的li?

时间:2015-12-07 14:18:16

标签: angularjs cordova ionic-framework

我是开发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');

                      }

 });
    }

1 个答案:

答案 0 :(得分:1)

您遇到了如何在数组中找到对象的问题。由于您传递categorie.idcategorie属性,因此无法在数组中找到相应的对象。因此index最终为-1splice(-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)"