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
$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
2=başlangıç
if (!$scope.$$phase) $scope.$apply()
, yapma senin demek$scope.$apply()
çağrı yığını içinde, çok yüksek değil.
zaten devam eden uygulayın hata $...
Altyazı denetleyicisi zaten * hata And...
"arabirim üyesi" uygulamak; a...
Bu zaten Satır satır eklemeye çalışırk...
Nasıl/dolar oturum açın.hata ayıklama ...