1
嗨,我正在写在angularjs一些代码的工作人员删除repetitve功能,但我必须从控制器到其他例如使重复的代码,让我们假设我们有两个控制器editProductController和newProductCtrl,我们要调用保存方法我的编码风格会是这样的:如何从angularjs控制器
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){
....
}};
当 “产品” 是一个angularjs资源服务。所以我的问题将是我怎样才能更好的编码风格,以消除重复的代码?
理想的情况下大部分的业务逻辑应该是服务。我喜欢将控制器视为逻辑和视图之间的“胶水”。 – NicolasMoise
对不起,我已更新我的问题更清楚。首先,我想以同样的方式像你这样做,但在我的情况,我必须应对onSucces在$范围和onError方法中怎样处理这种计算策略在服务端 – ziedTn
是的,我明白了,你不能访问内部$范围一个服务,所以你必须找到一种方法来分开逻辑和逻辑,你将把它放在你的服务中。 – NicolasMoise