1
각도에서 일부 메서드 호출은 개체을 반환하고 일부는 리소스을 반환하기 때문에 비교하기가 어렵습니다. 나는 사용자 모델과 권한 모델을 가지고있다.AngularJS - 리소스 및 개체 비교
myApp.service('User', function($resource) {
var User = $resource('users/:userId.json');
return User;
});
그리고 권한 모델은 정의 : 사용자 모델을 정의
{"id":1,"username":"Admin","group_id":"1","permissions":[{"id":1,"name":"Create Users"},"id":2,"name":"Delete Users"}]}
이 수단 : 나는 사용자를 검색 할 때
myApp.service('Permission', function($resource) {
var Permission = $resource('permissions');
return Permission;
});
은 json으로 사용자의 권한이 반환 사용자를 검색 할 때 권한으로 액세스 할 수 있습니다. 예 :
User.get({userId: 1}).permissions
내가 모든 권한 목록과이를 비교하고, 사용자가 이미하지 않는 권한의 목록을 얻으려면이 있습니다
$scope.user = User.get({userId: 1});
Permission.query().$promise.then(function(all){
$scope.user.$promise.then(function(u){
$scope.unselected_permissions = _.difference(all, u.permissions);
});
});
문제는, all
이 자원의 배열입니다, u.permissions
은 개체의 배열입니다. u.permissions
에서 리소스 목록을 반환하는 간단한 방법이 있습니까? 여기서 해결할 약속을 기다리는 대신 제가 할 수있는 일이 있습니까?
Permission.query().$promise.then(function(all){
$scope.user.$promise.then(function(u){
$scope.unselected_permissions = all.filter(function(p){
return !u.permissions.some(function(q){return p.id == q.id;});
});
});
});
: