Différence entre les méthodes $observe et $watch dans AngularJS
AngularJS utilise à la fois des observateurs et des observateurs pour surveiller les modifications dans l'objet $scope. Bien que les deux réagissent aux modifications de $scope, il existe des différences clés entre les deux.
$observe :
- Méthode disponible sur l'objet Attributs
- Surveille uniquement le changement de valeur des attributs DOM
- Principalement utilisé dans les directives
- Convient pour observer les attributs contenant une interpolation ({{}})
$watch :
- Méthode sur l'objet Scope
- Surveille une "expression", soit une fonction, soit une chaîne
- Les chaînes sont évaluées comme angulaires expressions, à l'exclusion de {{}}
- Peut être utilisé dans les contrôleurs et les fonctions de liaison
- Souvent utilisé pour observer les propriétés du modèle/portée
Nature asynchrone de Attributs avec interpolation :
Les attributs qui incluent une interpolation ne sont pas évalués immédiatement. Par conséquent, $observe et $watch sont essentiels pour les gérer de manière asynchrone.
Recommandations :
Si une portée isolée n'est pas utilisée, $watch est recommandé. Pour les étendues isolées avec des attributs contenant une interpolation, $observe doit être préféré pour des raisons de cohérence.
Exemples de cas d'utilisation :
- $observe : observez la valeur de attr1= "Nom : {{name}}" dans une directive.
- $watch : Surveillez la propriété myModel.some_prop dans un contrôleur.
Remarques supplémentaires :
- $observe et $watch sont exécutés au cours de chaque cycle de résumé.
- Les directives avec des portées isolées autorisent $observe ou $watch pour les attributs interpolés dans le cas de la syntaxe @.
- L'évaluation directe ($eval()) peut être utilisée pour les attributs contenant des nombres, des booléens ou des chaînes constantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!