2013-06-10 13 views
7

Quindi scusate in anticipo per il terribile titolo. Non conosco davvero tutta la terminologia angolare corretta per queste cose.

Ho codice come questo in un ambito:

$scope.catName = 'Le cat' 

//<-- Magic goes here 

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

Ora, poiché attende angolari fino alla prossima digest (è che il termine corretto?) Per valutare l'orologio, il mio compito iniziale ('Le gatto') innescherà l'orologio.

Vorrei che questo assegno non attivasse l'orologio, ma dopo cambia in questo modo.

C'è un modo per ripristinare lo 'stato sporco' di catName?

Js-violino: http://jsfiddle.net/7DNrD/1/

risposta

16

controllare questa soluzione

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

$scope.catName = 'Le cat' 

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

Hmm, sì che funziona piuttosto bene anche se cerchiamo di tenere la speranza un po 'per una soluzione più elegante :) – alun

+0

controllo la risposta aggiornata è un approccio migliore e più pulito – Atrix1987

+0

Ora stiamo parlando. Bel lavoro. – alun