为什么我要使用两个控制器而不是一个?

时间:2013-09-02 12:57:54

标签: angularjs

如果我必须在两个控制器之间共享变量,那么使用一个控制器不是更好吗?

4 个答案:

答案 0 :(得分:2)

您有三种选择:

  • 将所有逻辑保留在一个控制器中 - 难以维护
  • 两个有两个控制器和重复逻辑 - 再次难以维护
  • 要有两个控制器和服务中需要的单独逻辑 - 将是 能够在两个控制器中重用逻辑并删除重复。

答案 1 :(得分:1)

你会因为不同的原因使用每个应用程序控制器,在我看来,这使得应用程序更具可读性和可维护性。如果你需要分享一些东西,那就去做吧。

答案 2 :(得分:1)

使用两个控制器而不是一个控制器的选择通常取决于您决定如何为应用中的真实世界实体建模。共享变量并不足以激励两个控制器融合。最好是为每个控制器维护一个自己的实体,并为它们之间所需的通信创建一个Angular服务。

答案 3 :(得分:1)

只需将其视为以提高您的软件内聚力。 通过更高的内聚性,您的代码更易于维护,重用,测试和调试。 例如,如果您将PersonController分为TeacherControllerStudentController,它们分别返回教师和学生对象。当您在应用程序中遇到错误时,例如。学生视图未正确显示成绩,您可以更轻松地识别出错误来自哪个控制器。