2016-11-08 7 views
1

Im Erstellen einer App mit ionic und angularjs. In der App Entwicklung habe ich Swipe-Option aus dem ionischen verwendet, um den spezifischen Gutschein aus der Hauptliste zu löschen. Das Problem, das ich Problem hier habe, ist, ich bin nur in der Lage, die Beschreibung des ausgewählten Gutscheins zu löschen, aber nicht in der Lage, den Gutschein aus der Hauptliste zu löschen/entfernen. Auch ich habe $rootScope wo ich meine json array erklärt habe. Ich habe eine $scope.item deklarieren, in die der ausgewählte Coupon und seine Details geschoben werden, um die Beschreibung jedes ausgewählten Coupons anzuzeigen. Ich gehe irgendwo im Code falsch, bitte helfen Sie mir, es richtig zu machen. Vielen Dank.So löschen Sie den Artikel aus der Liste

HTML:

<ion-list> 
     <ion-item ng-click="select_item(coupons)" ng-repeat="coupons in couponList" ng-model="coupons.selected"> 
      {{coupons.CouponTitle}} <br> 
      <ion-option-button ng-click="editCoupons(coupons)">Edit</ion-option-button> 
      <ion-option-button class="button-assertive" ng-click="deleteSelected(coupons)">Delete</ion-option-button> 
     </ion-item> 
    </ion-list> 
    <hr> 
    <div style="text-align:center"> 
     <div ng-repeat="item in items"> 
      Coupon offer: {{item.data.description}}<br> Valid From: {{item.data.Fromldate}} 
      <br> Valid Till: {{item.data.Todate}} </div> 

Controller:

$scope.items = []; 
     $rootScope.couponList = [{ CouponTitle: "Purchase worth $100", data: {description: "$50 off", Fromldate: "2016-09-09", Todate: "2016-09-18"}}, 
     {CouponTitle: "Purchase worth $300", data:{description: "$75 off", Fromldate: "2016-11-09", Todate: "2016-10-19"}}, 
     { CouponTitle: "Purchase worth $500",data:{description: "$95 off", Fromldate: "2016-09-10", Todate: "2016-09-30"}}]; 

     $scope.select_item = function (key) { 
     $scope.items.push(key); 

     } 

$scope.deleteSelected = function() { 
      $scope.items.splice($scope.items.indexOf()); 
    } 

Antwort

1

Wie in einer Antwort vorgeschlagen, können Sie den $index Mechanismus verwenden, um ein Objekt aus einem Array zu entfernen.

Sie müssen löschen sowohl von items array und rootscope array

Ausblick:

<ion-option-button class="button-assertive" ng-click="deleteSelected($index,coupons)">Delete</ion-option-button> 

Controller:

$scope.deleteSelected = function (index,coupons) { 
    $rootScope.couponList.splice(index,1); 

    var to_delete = $scope.items.find(find_data) 

    function find_data(items) { 
     return items.CouponTitle === coupons.CouponTitle; 
    } 

    var index = $scope.items.indexOf(to_delete); 

    $scope.items.splice(index,1) 


} 

HEre is a partial implemented fiddle

Sie sollten sowohl die Artikel-Array löschen, als auch couponList entfernen in ng-repeat

+0

@jazzoria, überprüfen Sie bitte meine Antwort. – Sravan

+0

Können Sie mir erklären, wie Sie 'ng-repeat' dafür verwenden? Bitte – jazzoria

+0

es ist das gleiche wie Sie genommen, überprüfen Sie den Geige Link, ' ' – Sravan

0

Pass Index innerhalb DeleteSelected als Parameter, und löschen Sie direkt von Array.

<ion-option-button class="button-assertive" ng-click="deleteSelected($index)">Delete</ion-option-button> 

Aber für $ Index finden Sie Spur von $ index Mechanismus von ng-Repeat verwenden.

Lassen Sie mich wissen, wenn Sie mehr Klerifikation wünschen.

+0

Ich habe $ Index verwendet, war aber in der Lage, nur die Beschreibung, aber nicht den Gutschein aus der Hauptliste zu löschen. @ Jigar7521 – jazzoria

Verwandte Themen