2013-03-19 6 views
5

Ich bin ziemlich neu in AngularJS und versuche, den Winkel Weg zu denken.
Momentan arbeite ich an einer App mit verschiedenen Funktionen, die in einem eckigen Service namens FeatureRegistry registriert sind. Von dort werden sie genommen und in eine Sidebar von FeatureSelectionController eingefügt. Durch Klicken auf ein Feature sollte die startFeature() Funktion des entsprechenden Features aufgerufen werden, und danach sollte das Feature zur Hauptansicht hinzugefügt werden (aber wo sollte diese DOM Manipulation stattfinden?).Anweisungen in HTML in AngularJS einfügen?

So gibt es meine Frage. Was ist der beste Weg (der eckige Weg), Direktiven zum DOM hinzuzufügen, will ich nicht unbedingt jQuery dazu verwenden (und auch die Verwendung von $ compile, $ watch usw. einschränken).

Die Richtlinien in der Hauptansicht können einen isolierten Umfang haben, weil die Merkmale Aktionen ausführen, die voneinander unabhängig sind (die Daten, die sie in Winkel Diensten sind gekapselt teilen).

Here is an image

Was wäre der Winkel Weg die Richtlinien einfügen?

Ich habe immer gelesen, dass DOM-Manipulationen nur in Direktiven vorkommen sollten, aber in den Dokumentationen und auch in anderen Fragen habe ich den Weg nicht gefunden.

+1

+1 Für einen richtigen Weg, um eine Frage zu stellen. – Stewie

Antwort

3

Hier ist eine kurze Demo: http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview

ich nicht unbedingt die Notwendigkeit Richtlinien sehen hier ... es sei denn, es gibt eine Menge gemeinsame Funktionalität zwischen Feature in der Liste der maximierten-Funktion und die minimierte Funktion .

Wenn Sie wirklich viel zu tun haben gemeinsame Funktionalität zwischen den drei Listen, könnte man so etwas tun:

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

Dann in Ihrer Richtlinie Vorlage, könnten Sie Ihre gemeinsame Funktionalität haben, dann bestimmen, was in Abhängigkeit zu haben auf den Zustand mit ng-switch oder ng-show.

Benötigen Sie Hilfe beim Schreiben der aktuellen Anweisung?

Verwandte Themen