【问题标题】:AngularJS Controller per view or per entity每个视图或每个实体的 AngularJS 控制器
【发布时间】:2017-06-01 10:12:53
【问题描述】:

我一直在考虑 MVC 模式中控制器的概念,但是我想讨论一些事情,我们应该在使用 angularJS 时为每个实体(比如说产品)或每个视图创建一个控制器(因为 angularJS 遵循单例概念)还是为所有与“产品”相关的视图设置一个控制器是否正确?

我会给出一个情况:

假设我们有一个称为采购的模块,在该模块下我们有三个子模块:产品、供应商和库存移动,每个子模块都有 CRUD 操作的视图,假设在产品下我们有:list- products.view.html、create-product.view.html、edit-product.view.html;控制器的最佳方法是什么?每个视图一个控制器,还是所有视图一个控制器?

感谢您的帮助

【问题讨论】:

    标签: angularjs entity-framework model-view-controller


    【解决方案1】:

    我通常为每个视图使用一个控制器和路由,这是最常用的方法。它有助于逻辑地构建应用程序,尤其是当它开始增长时。

    还有另一种情况,我在每个视图中使用多个控制器来管理视图的不同区域。在这种情况下,每个控制器都管理整个页面的一个片段。

    【讨论】:

      【解决方案2】:

      我总是为每个视图选择一个控制器,无论这是否导致每个实体有多个控制器。原因很简单。每当视图出现故障时,我都想查看最小的代码子集以找出问题所在。

      此外,如果您考虑一下,控制器的工作是响应来自视图的命令并将模型更改传达给视图。因此,从本质上讲,您的控制器不应该管理实体,而是用于管理您的视图。

      这种方法在 98% 的情况下都为我服务,没有任何问题。显然,在软件中没有绝对的答案,因此在某些情况下,每个实体控制器可能会更无缝地适应。但对我来说,从实践和哲学的角度来看,每个视图的控制器更有意义。

      【讨论】:

      • 感谢您的回复。如果您觉得这个问题有用,请给它投票。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2016-02-12
      • 2014-02-05
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多