每个视图或每个实体的AngularJS控制器

时间:2017-01-17 11:10:34

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

我一直在考虑MVC模式中控制器的概念,但我想讨论的是,我们是否应该为每个实体创建一个控制器(让我们说产品)或者使用angularJS时的每个视图(因为angularJS遵循单例概念)或者是否拥有与"产品相关的所有视图的控制器"例如?

我会给出一个情况:

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

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我总是为每个视图设置一个控制器,无论这是否导致每个实体都有多个控制器。这样做的原因很简单。每当视图出现故障时,我想查看最小的代码子集以找出出错的地方。

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

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

答案 1 :(得分:0)

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

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