Скомпилируйте страницы AngularJS и удалите директивы ng-*

#angularjs #angular #angularjs-directive

#angularjs #angular #angularjs-директива

Вопрос:

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

Комментарии:

1. В чем причина? просто чтобы сделать dom чище? если это так, то AngularJS работает следующим образом:]

Ответ №1:

Короткий ответ:
Нет.

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

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

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

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

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

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