SORU
17 Ocak 2013, PERŞEMBE


Hata: 10 $digest() yineleme ulaştı. İptal ediliyor! dinamik sortby yüklem ile

Ve kullanıcı adı ve skoru tekrarlar gösteren aşağıdaki kodu var:

<div ng-controller="AngularCtrl" ng-app>
  <div ng-repeat="user in users | orderBy:predicate:reverse | limitTo:10">
    <div ng-init="user.score=user.id 1">
        {{user.name}} and {{user.score}}
    </div>
  </div>
</div>

Ve buna karşılık gelen açısal denetleyicisi.

function AngularCtrl($scope) {
$scope.predicate = 'score';
$scope.reverse = true;
    $scope.users = [{id: 1, name: 'John'}, {id: 2, name: 'Ken'}, {id: 3, name: 'smith'}, {id: 4, name: 'kevin'}, {id: 5, name: 'bob'}, {id: 6, name: 'Dev'}, {id: 7, name: 'Joe'}, {id: 8, name: 'kevin'}, {id: 9, name: 'John'}, {id: 10, name: 'Ken'}, {id: 11, name: 'John'}, {id: 1, name: 'John'}, {id: 2, name: 'Ken'}, {id: 3, name: 'smith'}, {id: 4, name: 'kevin'}, {id: 5, name: 'bob'}, {id: 6, name: 'Dev'}, {id: 7, name: 'Joe'}, {id: 8, name: 'kevin'}, {id: 9, name: 'John'}, {id: 10, name: 'Ken'}]
}

Yukarıdaki kodu çalıştırdığımda, anlıyorumHata: 10 $digest() yineleme ulaştı. İptal ediliyor!benim hata konsolu.

Aynı için jsfiddle oluşturduk.

http://jsfiddle.net/JSWorld/7ecYd/1/

Sıralama yüklem ng-repeat içinde tek initalized ediliyor ve aynı zamanda sınır nesne sayısı uygulanıyor. bu sortby ve limitTo gözlemcileri hem de birlikte olması hata nedeni olduğunu hissediyorum.

Kapsam$.ters false (puan eskiden yeniye doğru), o zaman hata vermez.

Kimse bana sorunun ne olduğunu anlamanıza yardım edebilir mi? Çok teşekkür ettim.

CEVAP
17 Ocak 2013, PERŞEMBE


Lütfen bu jsFiddle kontrol edin: http://jsfiddle.net/bmleite/Hp4W7/. (Kod temelde aynıdır yayınlanmıştır ama bağlamak için pencere kaydırma olayları) yerine bir eleman kullanın.

Görebildiğim kadarıyla, sana gönderilen kod ile sorun yok. Bahsettiğiniz hata normalde bir özelliği üzerinde değişiklikler bir döngü oluşturmak oluşur. Örneğin, izlerken belli bir özelliği üzerinde değişiklikler ve dinleyici üzerinde bu özellik değerini değiştirin:

$scope.$watch('users', function(value) {
  $scope.users = [];
});

Bu hata iletisine neden olur:

Yakalanmamış Hata: 10 $digest() yineleme ulaştı. İptal ediliyor!
Gözlemcileri son 5 tekrarlamalar etti: ...

Kodunuzu bu durumda olduğundan emin olun.

güncelleme:

Bu senin sorunun

<div ng-init="user.score=user.id 1"> 

Oluşturma sırasında nesne/model değiştirmeniz gerekmez mi ya da yeni bir render zorlar aksi bir sonuç olarak. (ve ^em>döngüneden ., ^em>'Hata: 10 $digest() yineleme ulaştı. İptal ediliyor!').

Eğer modeli güncellemek için wan eğer, bir Direktif, hiçbir zaman görünümü üzerinde Kumanda üzerinde ya da bunu. recommends not to use ng-init tam olarak bu tür durumlardan kaçınmak için: angularjs belgeler

Şablonlar (oyuncak/örnek uygulamalar sadece, değil ngİnit yönergesini kullanın gerçek uygulamalar için tavsiye edilir

Burada çalışan bir örnek ile bir jsFiddle: http://jsfiddle.net/bmleite/7ecYd/3/

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • magnum33563

    magnum33563

    8 NİSAN 2011
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008