AngularJS - 类似视图 - 我应该对多个控制器使用相同的视图吗?

Posted

技术标签:

【中文标题】AngularJS - 类似视图 - 我应该对多个控制器使用相同的视图吗?【英文标题】:AngularJS - Similar view - Should i use same view with multiple controllers? 【发布时间】:2015-04-10 22:02:34 【问题描述】:

假设我们正在为特定对象实现 CRUD 操作 - 这些视图会非常相似,我认为我应该对多个控制器使用相同的视图。有没有办法根据参数动态选择控制器,或者这种类型的动作只能在控制器内部进行?

【问题讨论】:

【参考方案1】:

技术上你可以,但根据 Johnpapa 的优秀 angular styleguide style Y037 :

为视图定义一个控制器,尽量不要重复使用该控制器 其他视图。

不过,您认为某些 CRUD 逻辑应该通用和抽象是正确的。控制器不是正确的地方; 工厂(即服务)是。

【讨论】:

对不起,我看错了。我无法弄清楚您的意思是什么视图会非常相似。你能举个例子吗?【参考方案2】:

您可以在不同的控制器上使用相同的视图,但这取决于您在视图中执行的操作以及控制器是否具有绑定在视图中的 $scope 对象中的必要成员。你可以在你的 $scope 对象上添加一个“action”变量,并以此为基础修改视图。

【讨论】:

您也可以通过路由来实现这一点 - 让路由参数决定“动作”,并在多个控制器上拥有相同的视图。 路由是更好的选择。

以上是关于AngularJS - 类似视图 - 我应该对多个控制器使用相同的视图吗?的主要内容,如果未能解决你的问题,请参考以下文章

在angularjs中为多个控制器路由?

在angularjs中为多个控制器路由?

哪个弹簧视图解析器与 angularjs 配合得很好?

使用 AngularJS 的多个视图中的相同数据

如何在多个视图部分重用 angularjs 数据?

剑道树视图Angularjs上的自定义按钮