2013-06-03 82 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团队最近发布,以显示完整的应用程序。

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

我相信它将会是一个按照您描述的方式将菜单和服务组合在一起的好方法。