为什么/何时使用多控制器-Angularjs

为什么/何时使用多控制器-Angularjs,angularjs,angularjs-controller,Angularjs,Angularjs Controller,我最近开始与AngularJs合作 为了理解使用多控制器的原因,我找到了不同的网站解释如何使用多控制器()。但我实际上在寻找一个使用多控制器的理由 所以我的问题是:为什么或者什么时候我们应该在一个项目中使用多个控制器?以及与这个问题相关的子问题:在一个角度项目中使用多个控制器是一个好的实践。每个视图使用一个控制器是一个非常好的实践。例如,您应该为/home view设置单独的控制器,为/gallery设置另一个控制器,为/contact设置另一个控制器 它迫使作为开发人员的您组织代码,以便您可以

我最近开始与AngularJs合作

为了理解使用多控制器的原因,我找到了不同的网站解释如何使用多控制器()。但我实际上在寻找一个使用多控制器的理由


所以我的问题是:为什么或者什么时候我们应该在一个项目中使用多个控制器?以及与这个问题相关的子问题:在一个角度项目中使用多个控制器是一个好的实践。

每个视图使用一个控制器是一个非常好的实践。例如,您应该为/home view设置单独的控制器,为/gallery设置另一个控制器,为/contact设置另一个控制器

它迫使作为开发人员的您组织代码,以便您可以利用服务、过滤器等


此外,编写单元测试更容易,因为您可以看到哪些被覆盖,哪些没有被覆盖。

每个视图使用一个控制器是一个非常好的实践。例如,您应该为/home view设置单独的控制器,为/gallery设置另一个控制器,为/contact设置另一个控制器

它迫使作为开发人员的您组织代码,以便您可以利用服务、过滤器等


此外,编写单元测试更容易,因为您可以看到哪些被覆盖,哪些没有被覆盖。

这也是一个MVC问题,因为angular扩展了这个模式。在苹果的声明中,它说:

每个视图仅由一个视图控制器控制

因此,MVC模式的思想是分离视图。通过每个视图有一个控制器,可以更容易地实现这一点。它简化了为一个模块提供服务的控制器的组织。您不会受到代码气味的影响

此外,在app.js中,对于角度情况的路由问题也很重要。它为其他开发人员澄清了该项目的结构。在angularjs中使用TestCular,单元测试很棒,拥有多个控制器使单元测试更容易

编辑:


您很可能还需要更多控制器来实现更多功能。例如,用户可以在其中创建新帐户的身份验证控制器。除此之外,您还需要一个superadmin视图,在该视图中您可以使用更高的权限编辑资源。在这种情况下,使用单独的控制器是很常见的。范围和安全性问题必须改变。

随着angular模式的扩展,这也是一个MVC问题。在苹果的声明中,它说:

每个视图仅由一个视图控制器控制

因此,MVC模式的思想是分离视图。通过每个视图有一个控制器,可以更容易地实现这一点。它简化了为一个模块提供服务的控制器的组织。您不会受到代码气味的影响

此外,在app.js中,对于角度情况的路由问题也很重要。它为其他开发人员澄清了该项目的结构。在angularjs中使用TestCular,单元测试很棒,拥有多个控制器使单元测试更容易

编辑:


您很可能还需要更多控制器来实现更多功能。例如,用户可以在其中创建新帐户的身份验证控制器。除此之外,您还需要一个superadmin视图,在该视图中您可以使用更高的权限编辑资源。在这种情况下,使用单独的控制器是很常见的。范围和安全性问题必须改变。

您是否有任何关于该方法的参考资料?我喜欢您的解释,但我想了解更多,探索该方法?我该去哪里?或者你从哪里得到的?ThanksI与另一个前端开发人员合作,开发两个使用Angular作为主要UI框架的项目。我们很快发现,随着项目的发展,它们很快变得更加集中,也更难组织。我们在Git中也遇到了很多合并冲突。还不清楚谁负责为什么编写单元测试。通过上述步骤,我们解决了大部分问题。非常感谢您的帮助,我们的工作模式与我的工作模式相同。您对该方法有任何参考资料吗?我喜欢您的解释,但我想了解更多,探索该方法?我该去哪里?或者你从哪里得到的?ThanksI与另一个前端开发人员合作,开发两个使用Angular作为主要UI框架的项目。我们很快发现,随着项目的发展,它们很快变得更加集中,也更难组织。我们在Git中也遇到了很多合并冲突。还不清楚谁负责为什么编写单元测试。通过上述步骤,我们解决了大部分问题。非常感谢您的帮助,我们在这里使用的模式与我的工作模式相同。因此,如果我理解您的编辑。。。控制器可以链接到特定的功能性以及特定的视图?确切地说,这也取决于您的业务逻辑。在某些情况下,每个数据库表也有一个控制器,但对于特定的业务需求来说,这确实是一个想法。。。控制器可以链接到特定的功能性以及特定的视图?确切地说,这也取决于您的业务逻辑。在某些情况下,每个数据库表也有一个控制器,但对于特定的业务需求来说,这确实是一个想法。