Вставка директив в HTML в AngularJS?

Я новичок в AngularJS и пытаюсь мыслить в стиле Angular.
Сейчас я работаю над приложением с различными функциями, которые регистрируются в службе angular под названием FeatureRegistry. Оттуда они берутся и вставляются в боковую панель из FeatureSelectionController. Щелчком по объекту должна быть вызвана функция startFeature() соответствующего объекта, после чего объект должен быть добавлен в основной вид (но где должна происходить эта манипуляция с DOM?).

Так вот мой вопрос. Каков наилучший способ (угловой способ) добавления директив в DOM, я не обязательно хочу использовать jQuery для этого (а также хочу ограничить использование $ compile, $ watch и т. д.).

Директивы в mainView могут иметь изолированную область действия, потому что функции выполняют действия, независимые друг от друга (данные, которые они совместно используют, инкапсулированы в сервисы angular).

Вот изображение

Каким угловым способом вставить директивы?

Я всегда читал, что манипуляции с DOM должны происходить только в директивах, но в документации, а также в других вопросах я не нашел ТАКОГО способа сделать это.


person JustGoscha    schedule 19.03.2013    source источник
comment
+1 За правильный способ задать вопрос.   -  person Stewie    schedule 19.03.2013


Ответы (1)


Вот небольшая демонстрация: http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview

Я не обязательно вижу здесь необходимость в директивах... если только между функцией в списке, максимизированной функцией и минимизированной функцией нет большого количества общих функций.

Если у вас действительно есть много общих функций между тремя списками, вы можете сделать что-то вроде этого:

<feature ng-repeat="f in registry.all()" model="f" state="list">
<feature ng-repeat="f in registry.maximized()" model="f" state="open">
<feature ng-repeat="f in registry.minimized()" model="f" state="minimized">

Затем в вашем шаблоне директивы вы можете иметь свою общую функциональность, а затем определить, что иметь в зависимости от состояния, используя ng-switch или ng-show.

Вам нужна помощь в написании фактической директивы?

person Andrew Joslin    schedule 19.03.2013