Sono nuovo di AngularJS e, poiché è piuttosto complesso e l'approccio è nuovo per me, sono un po 'confuso.AngularJS: posizione corretta per il provider globale di menu, servizio o rootScope?
Vengo da uno sfondo "classico" (lingue template server-side [come Yii, django, Smarty] + alcuni jQuery per rendere le cose un po 'dinamiche).
Diciamo che ho una barra dei menu (Bootstrap NavBar, o qualsiasi altra cosa) - un elemento che vive di fuori della pagina principale contenuti, in questo modo:
<body>
<div id="menubar">
... <!-- menu content -->
</div>
<div class="container">
<div ng-view></div>
</div>
</body>
Ora vorrei per rendere il menu un po 'dinamico, ad esempio aggiungere o rimuovere alcune voci di menu all'interno del controller. Utilizzando i framework lato server & i loro sistemi di template, ad esempio Yii - Avrei semplicemente una classe BaseController
con la variabile $menuItems
e la renderò ogni volta nello menuBar
, mentre tutti i controller erediterebbero da BaseController
in modo da poter modificare gli elementi.
Inoltre, ho bisogno di una funzione che gestisca il searchForm
situato nella barra dei menu. Dove dovrebbe vivere?
Qual è il modo angolare per qualcosa di simile? Fino ad ora stavo pensando di creare service
personalizzato o di estendere $rootScope
.
Hai visto l'app di esempio? https://github.com/IgorMinar/foodme – vittore
@vittore grazie, non lo sapevo. Non sapevo di poter usare ng-controller insieme a ng-view :) Combinarlo con un servizio condiviso dovrebbe fare un trucco. Fai una risposta invece di un commento e la contrassegnerò come risposta. – migajek
possibile duplicato di [comunicazione globale nel modulo angolare: bus evento o modello/servizio mediatore] (http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-medediator- pattern-service) –