2013-02-26 4 views
1

Existe-t-il un moyen d'accéder à l'itérateur angulaire $ watch?

Je veux capturer la première itération par une montre de $ comme ceci:

scope.$watch("var", myFunc); 

myFunc() { 
    if (iterator === 1) ... 
} 

Répondre

5

Votre fonction montre obtenir deux arguments, la valeur actuelle de « var » et la valeur précédente. Lorsque votre montre déclenchera la première, les deux seront les mêmes, vous pouvez donc vérifier pour savoir si c'est la première fois que ça s'appelle. Comme ceci:

var myFunc = function(value, oldValue) { 
    if (value === oldValue) { 
     // First run 
    } 
} 
+0

Ceci est utile, mais pour être plus direct à ma question - est-ce qu'il n'y a pas d'itérateur pour la fonction $ watch? Aurais-je juste besoin de créer le mien? – Dustin

+0

Angular ne vous donne pas de compteur pour combien de fois la montre a été exécutée, et je ne sais pas pourquoi vous en auriez besoin? –