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

时间:2013-06-03 07:47:59

标签: javascript angularjs angularjs-scope javascriptmvc

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

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

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

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

现在我想让菜单有点动态,即添加或删除控制器内的一些菜单项。 使用服务器端框架&amp;他们的模板系统,例如Yii - 我只有一个带有BaseController变量的$menuItems类,并且每次都在menuBar中渲染它,而所有控制器都将继承自BaseController 1}}所以他们可以修改项目。

另外,我需要一个处理位于菜单栏内的searchForm的函数。它应该住在哪里?

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

1 个答案:

答案 0 :(得分:9)

更新:我建议您在采用angular.js时采用John Papa's ng-demoesstyle-guide作为第二步。

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

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

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