AngularJS:全局菜单提供者,服务或rootScope的正确位置?

mig*_*jek 8 javascript javascriptmvc angularjs angularjs-scope

我是AngularJS的新手,而且 - 由于它非常复杂而且这种方法对我来说很新,我有点困惑.

我来自"经典"背景(服务器端模板语言[如Yii,django,Smarty] +一些jQuery使事情有点动态).

假设我有一个菜单栏(Bootstrap NavBar,或其他任何东西) - 一个存在主页面内容之外的元素,如下所示:

<body>
  <div id="menubar">
    ... <!-- menu content -->
  </div>
  <div class="container">
    <div ng-view></div>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

现在我想使菜单有点动态,即添加或删除控制器内的一些菜单项.使用服务器端框架及其模板系统,例如Yii - 我只是有一个BaseController$menuItems变量的类,并且每次都在渲染它menuBar,而所有控制器都会继承,BaseController因此他们可以修改项目.

此外,我需要一个处理searchForm位于内部菜单栏的功能.它应该住在哪里?

什么是Angular方式这样的事情?到目前为止,我一直在考虑创建自定义service或扩展$rootScope.

vit*_*ore 9

更新:我鼓励你看一下John Papa的ng-demoesstyle-guide作为采用angular.js的第二步.

查看最近发布的angular.js团队示例,以显示完整的应用程序.

请注意角度为您提供的以下功能

我相信,将服务和指令组合在一起是一种很好的方法,可以按照您描述的方式呈现菜单.