Dynamische Menüleiste mit angularjs

Ich versuche ein Menü zu erstellen-bar mit Angularjs. Hab ich gemacht ähnliche Dinge, bevor Sie mit Backbonejs, aber ich habe eine harte Zeit, meinen Kopf um, wie dies mit den eckigen.

In meinem html - Datei habe ich folgende Menü-Platzhalter.

<div id='menu1'></div>
<div id='menu2'></div>
<div id='menu3'></div>
<div id='menu4'></div>
<div id='menu5'></div>

Einer Reihe von meinen eckigen Modulen ein Menü hinzufügen, wenn Sie geladen werden (in run). Jeder von Ihnen behält sich nur einen bestimmten slot (d.h. menu1..5), sodass Sie nicht aufeinandertreffen. Wenn einige Module nicht geladen, deren Menü nicht angezeigt, in der Menüleiste.

Winkel-Modul ist konzeptionell Aussehen:

angular.module('myModule3', [])
  .service('someService', function($http) {
    //get some data to populate menu (use $http)
    this.menuItems = ['orange', 'apple', 'banana']
  })

  .run(['someService', function(someService) {
    //create a rendered menu item
    ...
    //insert it at id="menu3"
  })

Zur Vereinfachung der erbrachten Menüpunkt Aussehen soll:

  <ul>
    <li>organge</li>
    <li>apple</li>
    <li>banana</li>
  </ul>

Ich bin ziemlich neu zu eckig, so dass ich nicht wirklich wissen, wo zu beginnen. Ich habe gelesen, bis auf directives, aber nicht sehen, wie Sie passen, wie Sie erfordern eine benutzerdefinierte markup (vielleicht ein benutzerdefiniertes Menü-tag mit dem DOM-Ziel (d.h. menu..5). Auch, wie verbinden Sie dies mit einem controller ist mir nicht klar.

Update
Zusätzlich zu den oben genannten base template (mit willkürlichen Ankerpunkten im DOM) und die Richtlinie (die produzieren ein DOM-element, das eingefügt werden an diesen Anker-Punkte), eine Vorlage erleichtert Ihnen die Erstellung des DOM-Elements. Diese Vorlage wird in einem separaten file mit der position der Richtlinie DOM-element eingefügt, um (im Gegensatz zu den üblichen Fall von Richtlinien, in denen eine bereits vorhandene Markierung wird ersetzt/eingefügt-spezifischen markup-entspricht der Richtlinie zur definition:

<menu ng-model="Model3DataService" target="#menu3">
  <ul>
    <li ng-repeat="for item in items"></li>
  </ul>
</menu>

Wieder, aus einem Backbone/jquery hintergrund, das macht Sinn, aber das kann nicht sein, das richtige zu tun, in eckig. Wenn ja, bitte lassen Sie mich wissen, wie ich könnte zu halten die Basis-Vorlage frei von jeglichen wissen über die Module und Annahmen, wo Sie Ihre Menü (d.h. die Nut der Menüleiste auf Sie reservieren). Ich bin froh zu hören, über andere Lösungen...

InformationsquelleAutor orange | 2013-10-11

Schreibe einen Kommentar