Angular предоставляет нам механизм для написания директив, который чрезвычайно эффективен в том, что он может сделать. Но я все время задаюсь вопросом - в каком сценарии вы должны на самом деле писать собственную собственную собственную директиву.
Мы продолжаем видеть вопросы внутри и вокруг Qaru с различными людьми, пытающимися написать директивы, которые (на мой взгляд) не обязательно должны быть написаны в первую очередь. В большинстве случаев их можно решить с помощью комбинации повтора, переключения и показа. См. Примеры вопросов, содержащих директивы, которые, я думаю, не должны быть директивами в первую очередь!
https://stackoverflow.com/info/16101073/angularjs-directive-is-not-working-in-ie-10
Нажмите кнопку "Пожарная кнопка" в AngularJS
angularjs: использование директивы внутри ui-bootstrap modal
Некоторые примеры сценариев. Я не собираюсь на них в любом случае... потому что я уверен, что кому-то не понятно, когда мы должны использовать/писать директиву.
Мы видим сценарий, в котором люди используют директивы в качестве механизма для шаблонов. Правильно ли это? Или есть лучший способ? (ng-include, возможно?) Есть ли какие-либо недостатки/недостатки для использования директив в качестве механизма шаблонов? Причина этого вопроса заключается в том, что иногда мне интересно, пишут ли люди директивы, потому что, исходя из мира jquery, первое, что они могут придумать, - это писать DOM, манипулируя кодом, а поскольку способ Angular заключается в том, чтобы не манипулировать DOM в контроллерах, все это тяготеет для написания всего этого кода в директиве.
EDIT:
Я считаю, что эта путаница (из-за того, что вы делаете вещи внутри директивы) возникает потому, что Angular не имеет отдельного понятия "вид" - в отличие от Backbone (у которого есть только "представление", но нет компонента!). Директивы изумительны при определении компонентов. Но я думаю, что если вы используете их для создания "представлений", вы потеряете часть "angular". Это мое мнение, хотя именно поэтому я прошу, что думает остальная часть сообщества Angular.
Хорошая вещь о более простых директивах (директивы, которые делают только 1 вещь!) состоит в том, что они абсолютно просты в тестировании. Если вы посмотрите на все директивы ng, все они делают 1 вещь и делают это очень хорошо.
Каков наилучший способ определения многоразовых "представлений" (а не компонентов!) в Angular? Должно ли это быть написано в директиве? Или есть лучший способ?
Было бы здорово, если бы у одного из Angular Dev было мнение в этом вопросе!