2014-12-10 1 views
0

나는 angularjs를 가진 아주 새내기이다. 이 프레임 워크의 모범 사례를 따르려고하지만이 작업을 수행하는 방법을 모르겠습니다.AngularJS에서 UI와 데이터를 연결하는 래퍼를 만드는 올바른 방법

원격 RESTful API 용 인터페이스 역할을하는 팩토리가 있습니다.

appServices.factory('UsersFactory', ['$resource', function($resource) { 

    var baseUrl = "http://...."; 
    var actionUrl = baseUrl + "users/"; 

    return $resource(actionUrl + ":id", {id: "@id"}, 
    { 
     'getAll': { 
      method: 'GET', 
      isArray:true 
     }, 
     'assignRoleToUser': { 
      'method': 'PUT', 
      'url': actionUrl + ":id/assign-role-to-user", 
      responseType: 'json' 
     } 
    }); 
}]); 

이 공장은받을 업데이트를 만들고 aswell 사용자 정의 된 작업 (예를 들어, 사용자에게 역할을 할당) 등의 사용자 (포스트 넣어, GET, PUT) 삭제할 수있는 공통 기능을 가지고있다.

그런 다음 사용자에게 보여주는 컨트롤러에서이 컨트롤러에 팩토리를 주입합니다.

그리고 사용자를 눌러 일단 내가 좋아하는 뭔가를 호출 할 수있는 버튼 : 나는 일부 확인 대화 상자가 예를 들어이 기능을 확장 할 몇 가지 추가 논리가 이후에 역할을 할당 할 때

UsersFactory.assignRoleToUser({id: 'userid', role: 'roleid'}); 

문제는 온다 사용자. 그냥 몇 가지 간단한 예제 : 지금 다른 뷰 또는 지시에 assignRoleToUser 코드를 재사용 할이 시점

// In controller.... 
$scope.asssignRoleToUser(id_user, id_role) { 

    ModalFactory.showConfirmDialog(blablabla, function() { 
     UsersFactory.assignRoleToUser({id: 'userid', role: 'roleid'}, function(){ 
      AlertsDialogs.showAlert("User assigned correctly"); 
     }); 
    }); 
} 

. 어떻게 구현할 수 있습니까? UserFactory의 래퍼/인터페이스처럼 작동하지만 웹 애플리케이션 내에서 재사용 할 수있는 UI를 추가하는 서비스를 생성 하시겠습니까? 당신이 UI의 동작을 추가 할 경우

어떤 도움을 다음 그냥 UI 동작에 대한 지침을 작성하는 것이 가장입니다,

+0

"AlertsDialog.showAlert ..."코드를 다시 사용 하시겠습니까? 이미 꽤 일반화 된 것처럼 보입니다. 사용자에게 알리기 위해 여기에 많은 코드가있는 경우이를 위해 몇 가지 공통적 인 서비스를 만들어 모든 곳에서 재사용 할 수 있습니다. –

+0

@PavelKutakov 하나의 서비스에서 모델을 분리하고 다른 서비스의 경고를 분리하여 사용자 작업을 캡슐화하는 "래퍼"에 사용하려는 생각이 들었습니다. 따라서이 "assignRoleToUser"기능을 컨트롤러에서 가져 오는 것과 그것을 가진 새로운 서비스를 만드십시오 (ModalFactory, UsersFactory 및 AlertsDialogsService의 주입이 있습니다) – fernandojsg

+0

또 다른 아이디어는 컨트롤러 상속을 사용하고 기본 컨트롤러에 모든 공통 사항을 구현하는 것입니다. –

답변

0

: 환영합니다.

예를 들어 확인 대화 상자 지시문과 같이 (확인 후) 전달한 모든 함수를 호출합니다.

그러나 원하는 경우 공통 UI 기능으로 서비스를 만든 다음 필요한 모든 컨트롤러에 서비스를 삽입 할 수 있습니다. 표준으로도 지시어를 사용하여 UI를 조작해야합니다.

+0

처음에는 사용자 지정 지시문을 사용하는 것이 좋겠지 만 확인 대화 상자가 필요한 각 작업에 대해 거의 모든 지시문을 만들어야합니다. 제게 모든 것을 싱글 톤 인스턴스로 가져 오는 것이 더 명확 해 보입니다. 사용자의 모든 작업을 그룹으로 묶을 것입니다. – fernandojsg

+0

아니요, 단 하나의 확인 대화 상자 지시문 만 있으면됩니다. 모든 상황에 맞게 인수를 전달하여 사용자 정의 할 수 있습니다. 확인 후에 어떤 기능을 호출 할 것인가, 외양에 대한 세부 사항 등. –

+0

알림, 대화 상자 등 여러 가지 작업을해야한다면 내 비즈니스 로직이 사용자의 모든 작업을 호출하는 하나의 "논리"지점을 갖지 않고 모든 지시문 사이에 확산 될 것입니다. 그리고 아마도이 엔트리 포인트는 (각 액션 내부에서) 그에 따른 지시어 – fernandojsg

관련 문제