您好我在angularjs下编写一些代码工作人员,但我必须从控制器到其他代码复制代码,例如我们假设我们有两个控制器editProductController和newProductCtrl,我们必须调用save方法,我的编码风格将是这样的:
var editProductController = function($scope , product){
$scope.product = product;
....
$scope.save = function(){
product.$save().then(onSuccess , onError);}
....
function onSuccess(response){
if(response.error === true){
$scope.productForm.name.$dirty = true;
$scoe.productForm.name.$invalid = true;
$scope.productForm.name.$error.server = response.errors.name;
......}
}
function onError(error){
....
}};
和newProductController
var newProductController = function($scope , Product){
$scope.product = {id : null , version :1, ...};
....
$scope.save = function(){
_.extend($scope.product , new Product());
product.$save().then(onSuccess , onError);}
....
function onSuccess(response){
if(response.error === true){
$scope.productForm.name.$dirty = true;
$scoe.productForm.name.$invalid = true;
$scope.productForm.name.$error.server = response.errors.name;
......}
}
function onError(error){
....
}};
当“Product”是angularjs资源服务时。所以我的问题是如何制作更好的编码风格来删除重复的代码?
答案 0 :(得分:0)
最好的方法是在角度服务或工厂中包含重复的功能。有不同的方式和编码风格来做到这一点。请参阅docs
这是一个例子
app.service('Product', [function(){
return {aProductMethod: ... , anotherProductMethod: ...};
}]);
然后在您的控制器中注入服务。