SORU
20 NİSAN 2013, CUMARTESİ


Dizin yanlış $Angularjs orderBy sonra

Angular.js yeni duyuyorum ve bazı sorunlar benim dizi sıralamak ve sıralanmış veri üzerinde çalışıyor.

Öğeleri içeren bir liste var ve "Saklayın.göre sıralamak istiyorum yani şimdiye kadar çalışma.", storeName Ama verileri sıralama sonra, benim silme fonksiyonu artık çalışmıyor. $Dizin sıralama sonra yanlış ve yanlış veriler silinir çünkü bu.

Bunu nasıl çözebilirim? Bu kapsamda veri sıralama ve görünümünde değil mi? Nasıl yapmalı?

Burada bazı ilgili kod:

Görünüm:

<tr ng-repeat="item in items | orderBy:'Store.storeName'">
                <td><input class="toggle" type="checkbox" ng-model="item.Completed"></td>
                <td>{{item.Name}}</td>
                <td>{{item.Quantity}} Stk.</td>
                <td>{{item.Price || 0 | number:2}} €</td>                
                <td>{{item.Quantity*item.Price|| 0 | number:2}} €</td>
                <td>{{item.Store.storeName}}</td> 
                <td><a><img src="img/delete.png" ng-click="removeItem($index)">{{$index}}</a></td>
            </tr>

Ve benim denetleyicisi belirli verileri silmek gereken bu silme özelliği var:

$scope.removeItem = function(index){
        $scope.items.splice(index,1);
    }

Bu güzel Görünümü sipariş vermeden önce çalışır. Eğer önemli bir şey yoksa, lütfen bana şimdi.

Teşekkürler!

CEVAP
20 NİSAN 2013, CUMARTESİ


Bunun yerine ya geçişi üzerinde $index - - fark var - işaret dizinde bir sıralama / filtre dizisi, iletebilirsiniz maddenin kendisi için removeItem fonksiyon:

<a><img src="img/delete.png" ng-click="removeItem(item)">{{$index}}</a>

ve removeItem aşağıdaki gibi bir dizin bir dizi indexOf yöntemi kullanarak bulmak için işlevini değiştirmek

$scope.removeItem = function(item){
   $scope.items.splice($scope.items.indexOf(item),1);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • max2sims2

    max2sims2

    19 Kasım 2008
  • pilslajt

    pilslajt

    20 HAZİRAN 2008