2013-06-03 8 views
8

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.

+1

Hai visto l'app di esempio? https://github.com/IgorMinar/foodme – vittore

+0

@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

+0

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) –

risposta

9

UPDATE: Vi incoraggio a dare un'occhiata a John Papa's ng-demoes e style-guide come dire secondo passo nell'adozione angular.js.

Guarda gli esempi del team angular.js pubblicato di recente, per mostrare l'applicazione completa.

Prestare attenzione alle seguenti caratteristiche angolari ti dà

I belive che sta andando essere un buon approccio per avere una combinazione di un servizio e una direttiva per il rendering del menu nel modo in cui lo hai descritto.

Problemi correlati