Компилировать страницы AngularJS и удалять директивы ng- * - PullRequest
0 голосов
/ 27 марта 2019

Можно ли скомпилировать приложение AngularJS для удаления директив ng- *, таких как (ng-click), и генерировать простой HTML, такой как Angular 2+? Если мы проверяем приложение Angular 2 с помощью, скажем, инструментов chrome dev, оно не показывает обработчики событий, такие как onClick. Однако AngularJS показывает ng-click, ng-for и т. Д.

1 Ответ

0 голосов
/ 27 марта 2019

Краткий ответ:

Длинный ответ:
Я не буду приводить один, поскольку ваш вопрос касается многих (сложных) тем, которые уже были объяснены в другом месте и, возможно, лучше, чем я мог бы сделать, но я приведу несколько полезных ссылок в моем кратком объяснении.

Средний ответ:
То, что вы просите, невозможно, потому что AngularJS использует другой подход для обнаружения изменений и привязок событий.

Одна из замечательных особенностей AngularJS / Angular - это способность обнаруживать изменения и выполнять обновления автоматически. Чтобы сделать это возможным, Angular (JS) должен заметить, если что-то изменится.

Используя ваш пример с событием click, AngularJS использует основанные на событии директивы, чтобы заметить событие click, тогда как Angular выполняет привязку события , используя одностороннюю привязку от представления шаблона к компоненту. Angular имеет такую ​​возможность, потому что он использует зон, чтобы узнать об изменениях . Следовательно, директива не нужна, как AngularJS.

Это объясняет, почему вы не видите обработчики событий в элементе HTML, потому что Angular напрямую устанавливает привязку события. Вы можете убедиться, что событие обрабатывается Zone.js, если вы проверите вкладку Прослушиватели событий в Chrome:
Click event gets handeled by Zone.js

Другие полезные ссылки на тему:

...