나는 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 동작에 대한 지침을 작성하는 것이 가장입니다,
"AlertsDialog.showAlert ..."코드를 다시 사용 하시겠습니까? 이미 꽤 일반화 된 것처럼 보입니다. 사용자에게 알리기 위해 여기에 많은 코드가있는 경우이를 위해 몇 가지 공통적 인 서비스를 만들어 모든 곳에서 재사용 할 수 있습니다. –
@PavelKutakov 하나의 서비스에서 모델을 분리하고 다른 서비스의 경고를 분리하여 사용자 작업을 캡슐화하는 "래퍼"에 사용하려는 생각이 들었습니다. 따라서이 "assignRoleToUser"기능을 컨트롤러에서 가져 오는 것과 그것을 가진 새로운 서비스를 만드십시오 (ModalFactory, UsersFactory 및 AlertsDialogsService의 주입이 있습니다) – fernandojsg
또 다른 아이디어는 컨트롤러 상속을 사용하고 기본 컨트롤러에 모든 공통 사항을 구현하는 것입니다. –