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

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • case LianLi

    case LianLi

    28 Mayıs 2010
  • jonathepianist

    jonathepiani

    31 Temmuz 2008