Maison > interface Web > js tutoriel > Comment intégrer les contrôles AngularJS avec du code hérité nécessitant des rappels de fenêtre DOM ?

Comment intégrer les contrôles AngularJS avec du code hérité nécessitant des rappels de fenêtre DOM ?

Barbara Streisand
Libérer: 2024-10-19 10:34:29
original
263 Les gens l'ont consulté

How to Integrate AngularJS Controls with Legacy Code Requiring DOM Window Callbacks?

Appelez AngularJS à partir du code hérité

Problème :
Vous devez intégrer les contrôles AngularJS avec un Flex existant application qui nécessite des rappels attachés à la fenêtre DOM.

Solution :

Pour distribuer des événements que les contrôleurs AngularJS peuvent écouter depuis l'extérieur du framework, suivez ces étapes :

  1. Obtenez la portée et l'injecteur :

    • Utilisez angulaire.element(domElement).scope() pour obtenir la portée actuelle du HTML élément utilisé pour mettre à jour l'application AngularJS.
    • Utilisez angulaire.element(domElement).injector() pour accéder à l'injecteur d'application actuel.
  2. Obtenez le service AngularJS :

    • Depuis l'injecteur, obtenez le service AngularJS que vous souhaitez mettre à jour.
  3. Invoquer les fonctions AngularJS :

    • Dans AngularJS, enveloppez toutes les mises à jour des invocations de modèle ou de méthode sur la portée dans $apply(function(){ ... }) pour garantir une propagation correcte des modifications. .

Exemple d'utilisation :

// Get the AngularJS scope and service
var scope = angular.element(document.getElementsByTagName('body')[0]).scope();
var service = scope.injector().get('myService');

// Invoke an AngularJS method
scope.$apply(function () {
  service.update();
});
Copier après la connexion

Notes supplémentaires :

  • Les modifications apportées au modèle AngularJS ou aux invocations de méthodes de portée doivent être enveloppées dans $apply().
  • Vous pouvez utiliser angulaire.element(domElement).controller() pour accéder au contrôleur AngularJS associé à l'élément HTML.

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!

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