«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как взаимодействовать AngularJS с устаревшим кодом

Как взаимодействовать AngularJS с устаревшим кодом

Опубликовано 9 ноября 2024 г.
Просматривать:512

How to Interoperate AngularJS with Legacy Code

Взаимодействие AngularJS с устаревшим кодом

Интеграция AngularJS с устаревшими приложениями может представлять проблемы из-за внешних обратных вызовов, которые должны взаимодействовать с платформой Angular . Чтобы решить эту проблему, AngularJS предоставляет несколько механизмов взаимодействия.

Доступ к сервисам Angular из внешнего кода

Один из подходов — создать сервис AngularJS и предоставить методы установки для его обновления. данные. Унаследованный код может затем вызывать эти методы через объект externalInterface AngularJS. Внутри службы функция установки должна инициировать событие, используя шину событий Angular.

Захват событий из служб в контроллерах

Контроллеры могут подписываться на события, создаваемые службами. Для этого сначала определите имя события в сервисе. В контроллере используйте метод $scope.$on() для регистрации прослушивателя событий, который будет перехватывать события с соответствующим именем и выполнять все необходимые обновления пользовательского интерфейса.

Ограничения

Важно отметить, что прямые обновления данных службы из-за пределов AngularJS не всегда могут вызывать обновления в представлении. Это связано с тем, что AngularJS использует механизм односторонней привязки данных. Чтобы обновления отражались в представлении, любые изменения данных или вызовы методов в области видимости должны быть обернуты функцией AngularJS $apply().

Пример

Следующее фрагмент кода демонстрирует, как настроить службу в AngularJS и получить к ней доступ из устаревшего приложения AS3:

angular.module('myApp').service('myService', function () {
  this.data = [];

  this.setData = function (data) {
    this.data.push(data);
    this.$emit('dataUpdated', data);
  };
});
// in legacy AS3 code
ExternalInterface.call("myService.setData", data);

В контроллере AngularJS:

$scope.$on('dataUpdated', function (event, data) {
  // update the UI with the received data
});
Заявление о выпуске Эта статья перепечатана по адресу: 1729304958. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3