AngularJS: 全局菜单提供者、服务或rootScope的正确位置是什么?

8

我对AngularJS还不熟悉,因为它非常复杂且方法新颖,我有点困惑。

我来自“传统”的背景(服务器端模板语言[如Yii、django、Smarty] +一些jQuery使事情稍微动态化)。

假设我有一个菜单栏(Bootstrap NavBar或其他任何东西)——一个在主页内容外部的元素,像这样:

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

现在我想让菜单变得有一些动态性,即在控制器内添加或删除一些菜单项。 例如,使用服务器端框架及其模板系统,比如Yii,我将简单地创建一个BaseController类,其中包含$menuItems变量,并在每次menuBar中呈现它,而所有控制器都将继承自BaseController以便它们可以修改项目。
另外,我需要一个处理位于菜单栏内的searchForm的函数。它应该放在哪里?
对于这种情况,Angular的做法是什么?到目前为止,我一直在考虑创建自定义service或扩展$rootScope

1
你看过这个示例应用吗?https://github.com/IgorMinar/foodme - vittore
@vittore 谢谢,我之前不知道这个。我不知道我可以在 ng-view 中使用 ng-controller :) 结合一些共享服务应该可以解决问题。把它作为回复而不是评论,我会把它标记为答案。 - migajek
1个回答

9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接