SORU
4 EKİM 2012, PERŞEMBE


AngularJS : çağrılırken hata sindirimi $zaten ilerlemesini Engellemek $scope.$()uygulamak

Açısal bir uygulama inşa beri daha elle benim kapsama benim sayfayı güncellemek gerektiğini düşünüyorum.

Bu yapmayı bildiğim tek yol denetleyicileri ve benim direktifleri kapsamı dışında $apply() aramak. Bu sorunu okuyan konsola bir hata atma tutar

Hata: devam eden $sindirmek

Herkes bu hatayı önlemek için nasıl biliyor mu, yoksa aynı şey ama farklı bir şekilde ulaşmak mı?

CEVAP
12 EKİM 2012, Cuma


$digest zaten $scope.$$phase kontrol ederek ilerleme olup olmadığını kontrol edin.

if(!$scope.$$phase) {
  //$digest or $apply
}

$scope.$$phase $digest $apply devam ediyor "$digest" "$apply" dönecektir. Bu devletler arasındaki fark $digest geçerli kapsamın saatler işleyecek ve çocuklar olduğuna inanıyorum, ve $apply tüm kapsamları gözlemcileri işleyecektir.

Eğer varsa $digest $apply sık sık kendini arıyor bulursanız @dnc253 bu noktada, yanlış yapıyor olabilir. Ben genel olarak DOM olay Açısal ateş menzilinin dışına sonucunda kapsamında devlet güncellemek için ihtiyacım olduğunda sindirmek gerekir. Örneğin, twitter bootstrap kalıcı bir gizli olduğunda. $digest sürerken bazen DOM olay, bazen değil yangınlar. Bu onay kutusunu kullanın.

Eğer herkes biliyorsa daha iyi bir şekilde bilmek isterdim.


Yorum: @tarafından anddoutoi

angular.js Anti Patterns

2=başlangıç
  • if (!$scope.$$phase) $scope.$apply(), yapma senin demek $scope.$apply() çağrı yığını içinde, çok yüksek değil.
  • Bunu Paylaş:
    • Google+
    • E-Posta
    Etiketler:

    YORUMLAR

    SPONSOR VİDEO

    Rastgele Yazarlar

    • Chanre Joubert

      Chanre Joube

      27 Temmuz 2012
    • DrePwn

      DrePwn

      22 Temmuz 2011
    • expertvillage

      expertvillag

      5 NİSAN 2006