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

Comment interagir avec AngularJS avec le code existant

Patricia Arquette
Libérer: 2024-10-19 11:10:02
original
348 Les gens l'ont consulté

How to Interoperate AngularJS with Legacy Code

Interfacer AngularJS avec le code hérité

L'intégration d'AngularJS avec des applications existantes peut présenter des défis en raison des rappels externes qui doivent interagir avec le framework Angular . Pour résoudre ce problème, AngularJS fournit plusieurs mécanismes d'interopérabilité.

Accès aux services Angular à partir d'un code externe

Une approche consiste à créer un service AngularJS et à exposer des méthodes de définition pour mettre à jour son données. Le code existant peut ensuite appeler ces méthodes via l'objet ExternalInterface d'AngularJS. Au sein du service, la fonction setter doit déclencher un événement à l'aide du bus d'événements Angular.

Capturer les événements des services dans les contrôleurs

Les contrôleurs peuvent s'abonner aux événements émis par les services. Pour ce faire, définissez d'abord un nom d'événement dans le service. Dans le contrôleur, utilisez la méthode $scope.$on() pour enregistrer un écouteur d'événements qui capturera les événements portant le nom approprié et effectuera toutes les mises à jour nécessaires de l'interface utilisateur.

Limitations

Il est important de noter que les mises à jour directes des données du service depuis l'extérieur d'AngularJS ne déclenchent pas toujours des mises à jour dans la vue. En effet, AngularJS utilise un mécanisme de liaison de données unidirectionnelle. Pour garantir que les mises à jour sont reflétées dans la vue, toute modification de données ou appel de méthode sur la portée doit être encapsulée dans la fonction $apply() d'AngularJS.

Exemple

Ce qui suit L'extrait de code montre comment configurer un service dans AngularJS et y accéder à partir d'une ancienne application AS3 :

<code class="javascript">angular.module('myApp').service('myService', function () {
  this.data = [];

  this.setData = function (data) {
    this.data.push(data);
    this.$emit('dataUpdated', data);
  };
});</code>
Copier après la connexion
<code class="as3">// in legacy AS3 code
ExternalInterface.call("myService.setData", data);</code>
Copier après la connexion

Dans le contrôleur AngularJS :

<code class="javascript">$scope.$on('dataUpdated', function (event, data) {
  // update the UI with the received data
});</code>
Copier après la connexion

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!