Soru Angularjs'de manuel olarak $ watch olayı tetikleniyor


Bu kodu kullanıyorum:

$scope.$watch('message', function()
{
    // the code
});

İletinin el ile değişiklik olayını manuel olarak tetiklemenin bir yolu var mı, bu yüzden kod çalıştırılacak mı?


25
2017-07-01 20:45


Menşei




Cevaplar:


Birkaç seçenek:

  1. Tüm saat ifadelerini çağıran özet döngüsünü çalıştırmak için $ scope. $ Apply () öğesini kullanın.

  2. İç izleme kodunu bir fonksiyonun içine koyun ve manuel olarak arayın.

  3. Değişiklik messages :)


40
2017-07-01 20:48





Burada başka bir seçenek, işlevi ayrı ayrı bildirmek ve kullanmaktır. $scope.watch işaretçi ile.

var watchFunction = function(){
    // the code
}

$scope.$watch('message',watchFunction);

watchFunction();

12
2018-03-10 08:49



Bu çözümü (@ShaiRez cevabında 2. seçenek) şık ve kesinlikle $ kapsamını çağırmaktan daha verimli buluyorum. - Nour Chawich