3

我正在尝试学习 AngularJS,我认为我有一个架构问题。

如果我想开始开发一个应用程序,比如 youtube,我如何在“区域”中组织页面(比如 Marionette)?我的意思是:顶部导航栏、搜索框、侧边菜单、主视频、评论等。

这些区域是否应该包含在指令中?

<div top-navbar></div>
<div main-video="link_to_video"></div>
ETC...

还是控制器?
<div ng-controller="top-navbar"></div>
ETC...

或者什么都没有?例如,只需将它们全部扔到下面app-controller

我也见过ng-include,但我不确定它应该在这里使用。无论如何,只是关于组织的问题。

4

2 回答 2

4

您绝对不需要为此使用指令,但是,根据每个部分的复杂性,您稍后可能会了解到,您可能会受益于将每个块包含在它自己的指令中。

由于您是 AngularJS 的新手,我建议您从让每个块与其自己的控制器相关联开始。当需要在块之间进行通信时,您可以使用继承、共享服务或事件广播。在此过程中,您将逐渐发现哪些块可能需要指令逻辑。

使用 ng-include 为每个块加载视图是完全可以的。否则(除非您使用指令),您的主视图很快就会变得非常沉重且难以使用。

您可能还想查看一些现有的种子项目,以更好地了解这些视图/区域的布局方式。

  1. 角应用
  2. ng-样板
于 2013-03-29T08:51:29.520 回答
1

如果它们是“几乎独立的 GUI 区域”,我认为使用不同的模块会更好(这将有助于您进行测试和调试)。

如果它们彼此相关,我认为使用不同的控制器将是最好的解决方案

于 2013-03-29T08:47:04.207 回答