2013-06-03 27 views
8

我是AngularJS的新手,而且 - 因爲它非常複雜,而且對我來說這種方法是新的,所以我有點困惑。我來自「經典」背景(服務器端模板語言[如Yii,Django,Smarty] +一些jQuery使事情有點動態)。AngularJS:全球菜單提供商,服務或rootScope的正確位置?

比方說,我有一個菜單欄(引導的NavBar,或其他任何東西) - 這住的主網頁內容的元素,像這樣:

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

現在,我想使菜單有點動態,即添加或刪除控制器內的一些菜單項。 使用服務器端框架&他們的模板系統,例如Yii - 我只需要一個BaseController類和$menuItems變量,並且每次都在menuBar中呈現它,而所有控制器將繼承BaseController,以便他們可以修改項目。

另外,我需要一個函數來處理位於菜單欄內的searchForm。它應該住在哪裏?

什麼是類似這樣的角度方式?到目前爲止,我一直在考慮創建自定義service或延伸$rootScope

+1

你見過示例應用程序嗎? https://github.com/IgorMinar/foodme – vittore

+0

@vittore謝謝,我不知道這一個。我不知道我可以用ng-controller和ng-view一起使用:)將它與一些共享服務結合起來應該可以做到。將它作爲答覆而不是評論,我會將其標記爲答案。 – migajek

+0

[angular module中的全局通信:事件總線或中介模式/服務]的可能重複(http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-mediator-模式服務) –

回答

9

更新:我會鼓勵你如說在採用angular.js第二步看看John Papa's ng-demoesstyle-guide

查看示例angular.js團隊最近發佈,以顯示完整的應用程序。

注重角以下功能爲您提供了

我相信它將會是一個按照您描述的方式將菜單和服務組合在一起的好方法。