2013-06-10 17 views
7

Przepraszam z góry za okropny tytuł. Tak naprawdę nie znam całej właściwej terminologii kątowej dla tych rzeczy.

mam kod jak to w zakresie:

$scope.catName = 'Le cat' 

//<-- Magic goes here 

$scope.$watch('catName', function() { 
    //[...] 
}) 

Teraz od kanciastych czeka, aż następnego trawienia (jest to, że prawidłowe określenie?), Aby ocenić zegarek, moje pierwsze zadanie („Le Cat”) uruchomi zegarek.

Chciałbym, aby ta funkcja nie wyzwalała zegarka, ale zmienia się po tym, aby to zrobić.

Czy istnieje sposób na zresetowanie "brudnego stanu" parametru catName?

JS-skrzypce: http://jsfiddle.net/7DNrD/1/

Odpowiedz

16

Sprawdź to obejście

http://jsfiddle.net/7DNrD/5/

$scope.catName = 'Le cat' 

$scope.$watch('catName', function (newValue, oldValue) { 
    if(oldValue === newValue){ 
     return; 
    } 
    //[...] 
}) 
+0

Hmm, tak, że działa dość ładnie chociaż niech trzymać się nadziei trochę bardziej eleganckie rozwiązanie :) – alun

+0

wyboru zaktualizowana odpowiedź jest lepszym i czystszym podejściem. – Atrix1987

+0

Teraz mówimy. Dobra robota. – alun