我最近开始使用AngularJs。
为了理解使用多个控制器的原因,我发现了不同的站点解释如何使用多个控制器(AngularJS site)。但我真正想要的是使用多个控制器的合理性。
所以我的问题是:为什么或何时应该在项目中使用多个控制器?以及与此问题相关的子问题:在Angular项目中使用多个控制器是一个很好的实践
答案 0 :(得分:3)
这也是一个MVC问题,因为角度扩展了这种模式。在Apple的View Controller Programming Guide for iOS中,它说:
每个视图仅由一个视图控制器控制。
因此,MVC模式中的想法是分离视图。通过每个视图具有1个控制器,可以更轻松地实现此目的。它简化了为一个模块提供服务的控制器的组织。你没有代码味道。
此外,对于角度情况,在app.js中路由问题也很重要。它澄清了其他开发人员的结构,这些开发人员将关注项目。在angularjs中使用testacular,单元测试很棒,有多个控制器使单元测试更容易。
编辑:
您还可能需要更多控制器来实现更多功能。例如,用户可以创建新帐户的Auth Controller。除此之外,您还需要一个superadmin视图,您可以在其中编辑具有更高权限的资源。在这种情况下,具有单独的控制器是很常见的。范围和安全问题必须改变。
答案 1 :(得分:1)
每1个视图使用1个控制器只是一个非常好的实践。例如,你应该有/ home视图的单独控制器,/ gallery的另一个控制器,以及另一个/联系人。
它迫使您作为开发人员组织代码,以便您可以利用服务,过滤器等。
编写单元测试也更容易,因为你可以看到覆盖的内容和不覆盖的内容。