2013-03-19 20 views
5

Jestem dość nowy w AngularJS i próbuję myśleć w sposób Angular.
W tej chwili pracuję nad aplikacją, która ma różne funkcje, które rejestrują się w kanciastej usłudze o nazwie FeatureRegistry. Stamtąd są one pobierane i wstawiane do paska bocznego od FeatureSelectionController. Klikając funkcję, należy wywołać funkcję startFeature() odpowiedniej funkcji, a następnie należy dodać tę funkcję do widoku głównego (ale gdzie powinna wystąpić manipulacja DOM?).Wstawianie dyrektyw do HTML w AngularJS?

Więc jest moje pytanie. Jaki jest najlepszy sposób (kątowy sposób) dodawania dyrektyw do DOM, nie koniecznie chcę użyć jQuery, aby to zrobić (a także chcę ograniczyć użycie $ compile, $ watch itp.).

Dyrektywy w mainView mogą mieć izolowany zakres, ponieważ funkcje wykonują działania, które są od siebie niezależne (współużytkowane dane są enkapsulowane w usługach kątowych).

Here is an image

Jaki byłby kątowe sposób wstawić dyrektyw?

Zawsze czytałem, że manipulacje DOM powinny mieć miejsce tylko w dyrektywach, ale w dokumentacji, a także w innych pytaniach nie znalazłem sposobu, aby to zrobić.

+1

+1 Właściwy sposób zadawania pytań. – Stewie

Odpowiedz

3

Oto krótkie demo: http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview

nie koniecznie widzi potrzeby dyrektyw tutaj ... chyba że istnieje wiele wspólnego pomiędzy funkcjonalnością funkcji na liście, na maksymalizację funkcji i zminimalizowana funkcja .

Jeśli naprawdę mają wiele wspólnego funkcjonalności pomiędzy trzema listami, można zrobić coś takiego:

<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"> 

Następnie w swoim dyrektywy szablonu, można mieć swój wspólny funkcjonalność następnie określić, jakie mają w zależności na stanie przy użyciu ng-switch lub ng-show.

Potrzebujesz pomocy w pisaniu właściwej dyrektywy?

Powiązane problemy