Взаимодействие между AngularJS и устаревшим кодом
В сценарии, где AngularJS интегрирован с устаревшим приложением, возникает необходимость установить связь между два. Одной из проблем является требование, чтобы обратные вызовы из устаревшего приложения были прикреплены к окну DOM. В этой статье рассматривается, как решить эту проблему и обеспечить эффективное взаимодействие между AngularJS и устаревшим кодом.
Чтобы включить устаревшие обратные вызовы, вы можете зарегистрировать функцию в объекте окна, которую AngularJS может вызывать. Например, в AS3:
ExternalInterface.call("save", data);
Это вызовет следующую функцию в AngularJS:
window.save = function(data){ // Update a service or dispatch an event }
Чтобы отправить событие из устаревшего приложения, которое может прослушивать контроллер AngularJS, рекомендуется использовать службу. Однако модификация сервиса за пределами AngularJS требует особого внимания.
Решением является использование возможностей взаимодействия AngularJS. Получив доступ к области видимости или инжектору элемента DOM, вы можете взаимодействовать с приложением AngularJS. Например:
angular.element(domElement).scope().$apply(function(){ // Update angular model or invoke methods });
Подводя итог, включение взаимодействия между AngularJS и устаревшим кодом включает в себя регистрацию обратных вызовов в объекте окна, использование сервисов для облегчения диспетчеризации событий и использование механизмов взаимодействия AngularJS для доступа к области видимости и инжектору из-за пределов AngularJS. Такой подход обеспечивает беспрепятственную связь между двумя приложениями, облегчая интеграцию современных веб-технологий с существующими системами.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3