2016-04-10 41 views
0

$scope.$watch'un izlediği değer, uygulamanın içinde herhangi bir yerde bulunmadığında neden çağrılsın?

aşağıda görebileceğiniz gibi

olursa olsun ben watchExpression için atamak Ne dize, fonksiyon

$scope.$watch('kwhefjkewgfweahhfwujad' , // a bunch of random letters 
       function() 
        { console.log("it fired ... why?"); 
        } 
      ) ; 

Firefox hataları göstermez ... çalıştırır.

+0

yapabilirdi. –

+0

Buradayım: https://docs.angularjs.org/api/ng/type/$rootScope.Scope ... ama bana neden çağrılabileceğini gösteren bir şey görmüyorum ... – dsdsdsdsd

+0

diyor ki: * Dinleyici her zaman kaydedildikten sonra ilk $ digest döngüsü sırasında çağrılır *. –

cevap

1

$scope.$watch('kwhefjkewgfweahhfwujad', function(val) { 
    if (val) { 
     console.log("it fired ... why?"); 
    } 
}); 

gözlemcileri her sindirmek döngüsüne çalışan deneyin. İlkel değeri izlediğiniz için, kapsama eklendiğinde, yeni bir değerin mevcut olduğunu doğrulamanız gerekir (ve değişti).

da O $ resmi belgelerinde izlemek de anlatılmış

$scope.$watch('kwhefjkewgfweahhfwujad', function(newVal, oldVal) { 
    if (newVal !== oldVal) { 
     console.log("it fired ... why?", newVal, oldVal); 
    } 
}); 
+0

Bir saat öncesine kadar problem yaşamadığım kadar bahsetmemiştim (bunun sadece çamurlu olduğunu düşünmüştüm) soru) ... bence bu bir çözüm, beklenmedik davranış değişiklikimi açıklamıyor bile olsa ... sadece kendi kendime ... garip .. teşekkürler Shannon – dsdsdsdsd