SORU
30 NİSAN 2013, Salı


Açısal ng-repeat Hata "tekrarlayıcı Yinelemeler izin verilmez.&"

Böyle özel bir filtre tanımlama duyuyorum:

<div class="idea item" ng-repeat="item in items" isoatom>    
    <div class="section comment clearfix" ng-repeat="comment in item.comments | range:1:2">
        ....
    </div>
</div>

Filtre ng-repeat içinde başka bir iç içe kullanıldığı ng-tekrar gördüğünüz gibi

Filtre bu gibi tanımlanır:

myapp.filter('range', function() {
    return function(input, min, max) {
        min = parseInt(min); //Make string input int
        max = parseInt(max);
        for (var i=min; i<max; i  )
            input.push(i);
        return input;
    };
});

Alıyorum:

Hata: izin verilmez tekrarlayıcı olarak Çoğaltır. Tekrarlayıcı: madde yorum.yorum | aralığı:1:2@https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/an ngRepeatAction

CEVAP
22 HAZİRAN 2013, CUMARTESİ


Çözüm aslında tarif burada: http://www.anujgakhar.com/2013/06/15/duplicates-in-a-repeater-are-not-allowed-in-angularjs/

AngularJS ng-repeat bir yönergeyle çiftleri izin vermiyor. Bu ise, aşağıdaki işlemleri yapmak için çalışıyorsanız, bir hata nasıl yapılır?

// the below will throw the error Duplicates in a repeater are not allowed. Repeater: row in [1,1,1] key: number:1
<div ng-repeat="row in [1,1,1]">

Ancak, biraz yukarıdaki kodu aşağıdaki gibi belirlemek için bir dizin tanımlamak için değişen tekrar işe alacak.

// this will work
<div ng-repeat="row in [1,1,1] track by $index">

Resmi dokümanlar burada: https://docs.angularjs.org/error/ngRepeat/dupes

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • karneson

    karneson

    23 Temmuz 2006
  • martin shervington

    martin sherv

    7 EKİM 2011