Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在AngularJS中组合CREATE和EDIT控制器是否是最佳做法?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在create和EDIT控制器中有很多重复的代码
这些控制器可以组合成一个用于最小化重复代码

问题:我需要区分哪个方法用于表单提交 – 例如create()或edit()。

解决方案:我可以@L_673_5@$ scope.mode作为示例,并设置$ scope.mode =’edit’,如果用户点击’编辑’按钮或设置$ scope.mode =’@L_673_5@’,如果用户点击“@L_673_5@”按钮。

我可以使用服务来最小化重复的代码,但仍然会有重复的代码。例如在两个控制器中,我有cancel()方法,它清除表单并隐藏它。我可以在服务中存储clearForm()和hideForm(),但是这两个控制器中的代码将被复制:

$scope.cancel = function() {
    service.clearForm();
    service.hideForm();
};

问题:

>在AngularJS中组合CREATE和EDIT控制器是否是最佳做法?
>有没有什么好的做法来减少重复的代码

是。使用1个控制器。

以下是使用1控制器的原因

控制器的工作是支持View。您的创建视图和编辑视图是完全相同的 – 只是一个数据预先填充(编辑),另一个不(创建)。
此外,此视图的“目的”是让用户更改或在表单中输入新值。你唯一的区别应该是reset()。但即使在那里,您可以从空模型对象开始,例如$ scope.entity = {}在create的情况下,您将以$ scope.entity = $ http.get()开头。

2控制器的重复问题

有两个不同的控制器和服务,您将至少产生以下重复:

$scope.cancel = function() {
    service.cancel();
};

$scope.validate = function() {
   ValidtionSvc.validate();
}
.
.
.//other stuff similar

但是问题是为什么甚至像你这样重复。

(自上述以来就是第一个问题的答案)

如何使用1控制器重复?

问题重新定义:在create和EDIT表单中是否有消除重复代码的良好做法?

根据我的知识,没有正式的“最佳实践”,以避免在这种具体情况下的重复代码。但是我建议不要使用mode = edit / create。在这种情况下,控制器的原因应该几乎没有区别,因为他们的工作是纯粹在用户交互时获取/更新模型。

以下是在这种情况下遇到的不同之处,以及如何/ then / else在mode = create / edit中如何避免:

1)使用现有值填充表单与创建的空表单。

获取现有实体,您需要一些键/查询数据。如果这样的关键数据存在,你可以做

var masterEntity = {};
if(keyData) {
   masterEntity = MyEntityresourceFactory.getEntity(keyData);
} 
$scope.entity = masterEntity;//for Create this would be {}

2)reset()形式
应该简单

$scope.reset = function() {
      $scope.entity = masterEntity;
   }

3)更新/创建

$http.post()//should not be different in today's world since we are treaTing PUT as POST

4)验证 – 这是一个完美的重用 – 应该没有区别。

5)初始值/认值

可以使用masterEntity = Defaults而不是{}。

大佬总结

以上是大佬教程为你收集整理的在AngularJS中组合CREATE和EDIT控制器是否是最佳做法?全部内容,希望文章能够帮你解决在AngularJS中组合CREATE和EDIT控制器是否是最佳做法?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。