1
안녕하세요, 저는 angularjs에서 코드 스탭을 쓰고 있습니다.하지만 컨트롤러에서 다른 코드로 코드를 만들어야합니다. 예를 들어 두 개의 컨트롤러 인 editProductController와 newProductCtrl이 있다고 가정하고 save 메소드를 호출해야합니다. 내 코딩 스타일은 그렇게 될 것입니다 : angularjs 컨트롤러에서 repetitve 함수를 제거하는 방법
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){
....
}};
하고 "제품"는 AngularJS와 자원 서비스입니다 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){
....
}};
에 대한
. 그래서 내 질문에 어떻게 더 나은 코딩 스타일을 중복 코드를 제거 할 수있을 것입니다?
이상적으로 비즈니스 로직의 대부분은 서비스에 있어야합니다. 저는 컨트롤러를 당신의 논리와 당신의 견해 사이의 "접착제"로 생각하고 싶습니다. – NicolasMoise
죄송합니다. 제 질문이 더 명확하게 업데이트되었습니다. 먼저 당신이 생각하는 것과 같은 방식이라고 생각하지만, 제 경우에는 onSucces와 onError 메소드의 $ scope를 처리해야합니다. 서비스 측면에서이 approch를 처리 할 수있는 방법은 무엇입니까? – ziedTn
예, 당신은 $ scope 내부에 액세스 할 수 없습니다. 서비스이기 때문에 논리를 서비스 논리에 반복되는 로직과 구분할 수있는 방법을 찾아야합니다. – NicolasMoise