Maison > interface Web > js tutoriel > le corps du texte

Quelle est la différence entre les méthodes $observe et $watch dans AngularJS ?

Patricia Arquette
Libérer: 2024-10-19 16:38:30
original
552 Les gens l'ont consulté

What's the Difference Between the $observe and $watch Methods in AngularJS?

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal