AngularJS观点/地区

时间:2013-03-29 06:36:15

标签: angularjs

我正在努力学习AngularJS,我认为这是一个架构问题。

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

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

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

或控制器?
<div ng-controller="top-navbar"></div>
等......

或者什么都没有?只需将它们全部放在app-controller之下。

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

2 个答案:

答案 0 :(得分:4)

你绝对不需要这方面的指令,但是,根据每个部分的复杂性,你可能会在以后了解到你可能会从每个块中拥有自己的指令中受益。

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

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

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

  1. Angular App
  2. ng-boilerplate

答案 1 :(得分:1)

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

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