2016-10-19 5 views

ответ

2

Угловой является каркасом. jQuery - это библиотека для работы с DOM. Только один из компонентов Angular framework под названием directive работает с DOM, и они действительно используют jQuery для этого. Фактически, он использует свое подмножество под названием jqLite. Это личный выбор, следует ли использовать jQuery для управления DOM в пользовательских директивах или нет, но поскольку сам Angular использует его, я не вижу причин не использовать его. И, конечно, конфликтов не будет, когда Angular и jQuery используются вместе. Фактически, Angular проверяет, доступен ли jQuery, и использует ли он его, чтобы манипулировать DOM с помощью встроенной библиотеки jqLite.

Если вы говорите, что в шаблоне вашей настраиваемой директивы вы должны использовать ng-class вместо добавления классов к элементам DOM вручную, я бы посоветовал использовать стандартную директиву Angular ng-class.

Согласно всем лучшим практикам, единственное место, где вы можете манипулировать DOM, - это директивы. И поскольку вы не можете изменять стандартную директиву, настраиваемые директивы - это единственное место, где вы можете манипулировать DOM. Это, конечно, плохая практика для манипулирования внутренними контроллерами или службами DOM, независимо от того, используете ли вы jQuery или нет.

+0

Без какой-либо специальной директивы, если использовать ее, то это хорошая практика? –

+0

Согласно всем лучшим практикам, единственное место, где вы можете манипулировать DOM, - это директивы. И поскольку вы не можете изменять стандартные директивы, настраиваемые директивы - это единственное место, где вы можете манипулировать DOM. Это, конечно, плохая практика для манипулирования внутренними контроллерами или службами DOM, независимо от того, используете ли вы jQuery или нет. –

+0

Если кто-то пытается изменить элемент DOM, имеющий стандартную директиву с jquery извне Angular Scope, то это вызывает проблемы для переваривания цикла? Если да, то как? –

Смежные вопросы