AngularJS-Direktive design patterns für ein sidebar-Menü
Arbeite ich mit angularJS erstellen Sie eine einfache Seite im Menü. Ich habe die folgenden zwei Optionen für seine design-Richtlinie kann aber nicht entscheiden, welche besser ist:
Option 1
Das HTML-markup:
<sidebar title="Sidebar Heading">
<sidebar-element name="Heading">Description</sidebar-element>
...
</sidebar>
Option 2
Das HTML-markup:
<sidebar>Sidebar Heading</sidebar>
Und die Daten kommen direkt aus dem controller:
$scope.sidebarElements=[{name:'Head 1', description:'Description 1', isActive:true}];
Berücksichtigen, dass die Daten zu mir kommen, vom server im JSON-Format.
Wenn ich mit option 2, kann ich übergeben Sie die Daten direkt in die Steuerung.
Wenn ich es mit der option 1, ich würde zu tun haben, eine <sidebar-element ng-repeat='element in elements' ...>
es, und dann pass auf die Daten zu. Option 1 scheint "besser konzipiert" irgendwie, aber ich weiß nicht, ob ich aufbauen sollte, eine andere Ebene der Abstraktion, auf diese Weise, wenn es nicht besonders erforderlich.
Welche der beiden wäre besser und warum?
Ich habe gerade angefangen zu arbeiten mit AngularJS und versuche den richtigen Weg zu finden "denken in AngularJS'
InformationsquelleAutor jitin | 2014-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt davon ab, wie extensible Sie brauchen, um dieses design. Wenn Sie möchten, um dieses design zu arbeiten als option1 in Zukunft, nur dann sollten Sie für ihn gehen, denn es wird auch verbrauchen mehr Zeit, um zusätzliche Stück code.
Wenn Sie wollen gehen Sie mit hoch erweiterbaren Ansatz erstellen Sie die Richtlinie und auch die Richtlinie, die Sammlung erstellen mit controller-Daten. Diese (Option1) wird erlauben Sie Benutzer, die in der Kombination der beiden Richtlinien, um das Menü zu bekommen mit statischen oder dynamischen Daten.
Wenn Sie sich entscheiden, zu gehen mit option1, wird dieser link hilfreich sein [LINK] : http://sporto.github.io/blog/2013/06/24/nested-recursive-directives-in-angular/
[Es hat live-Beispiel] : http://jsbin.com/acibiv/3/edit
, Wenn sich Ihre Daten immer aus json (controller-Daten) und es wird nie die Notwendigkeit zum hinzufügen von html - (statisch ), dann geht man einfach mit option2.
Ich denke, sobald Sie anfangen, sollten Sie gehen für option2 (Weniger wiederverwendbare aber leichter im Vergleich).
Richtlinie über die Benennung
Ich denke, dass die sidebar kann andere Elemente enthalten (andere als Menü). So benennen sollte, die sagen, es ist das Menü.
InformationsquelleAutor Ganesh