2013-06-03 12 views
8

Jestem nowy w AngularJS, i - ponieważ jest to dość skomplikowane i podejście jest dla mnie nowe, jestem nieco zdezorientowany.AngularJS: Prawidłowe miejsce dla dostawcy menu globalnego, usługi lub rootScope?

Jestem z "klasycznego" tła (języki szablonów po stronie serwera [takie jak Yii, django, Smarty] + niektóre jQuery, aby uczynić rzeczy nieco dynamicznymi).

Powiedzmy mam pasek menu (Bootstrap NavBar lub czegokolwiek innego) - element, który mieszka poza strony głównej zawartości coś takiego:

<body> 
    <div id="menubar"> 
    ... <!-- menu content --> 
    </div> 
    <div class="container"> 
    <div ng-view></div> 
    </div> 
</body> 

teraz chciałbym aby menu było nieco dynamiczne, tzn. dodawać lub usuwać niektóre elementy menu wewnątrz kontrolera. Korzystanie z systemów po stronie serwera & ich systemów szablonowych, na przykład Yii - Po prostu mam klasę BaseController ze zmienną $menuItems i renderuję ją za każdym razem w menuBar, podczas gdy wszystkie kontrolery będą dziedziczyć po BaseController, aby można było modyfikować elementy.

Potrzebuję również funkcji, która obsługuje searchForm znajdujący się wewnątrz paska menu. Gdzie powinien żyć?

Co jest sposobem Angulara na coś takiego? Do tej pory zastanawiałem się nad stworzeniem niestandardowego service lub rozszerzenia $rootScope.

+1

Czy widziałeś przykład aplikacji? https://github.com/IgorMinar/foodme – vittore

+0

@vittore dziękuję, nie znałem tego. Nie zdawałem sobie sprawy, że mogę używać ng-kontrolera razem z ng-view :) Połączenie go z pewną wspólną usługą powinno załatwić sprawę. Zrób odpowiedź zamiast komentarza, a ja oznaczyę to jako odpowiedź. – migajek

+0

możliwy duplikat [komunikacji globalnej w module kątowym: szyna zdarzeń lub wzorzec/usługa mediatora] (http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-mediator- wzór-usługa) –

Odpowiedz

9

UPDATE: Chciałbym zachęcić was do przyjrzeć John Papa's ng-demoes i style-guide jak mówią drugi etap przyjęcia angularjs.

Zobacz przykłady ostatnio opublikowanego zespołu angular.js, aby wyświetlić pełną aplikację.

zwrócić uwagę na następujące cechy kątowych daje

wierzę to będzie być dobre podejście do łączenia usługi i dyrektywy w celu wyświetlania menu w sposób opisany przez ciebie.

Powiązane problemy