首页 \ 问答 \ AngularJS - 比较资源和对象(AngularJS - Comparing resources and objects)

AngularJS - 比较资源和对象(AngularJS - Comparing resources and objects)

在Angular中,一些方法调用返回Objects ,一些方法返回Resources ,这使得它们难以比较。 我有一个用户模型和一个权限模型。 用户模型定义为:

myApp.service('User', function($resource) {
  var User = $resource('users/:userId.json');
  return User;
});

并定义了权限模型:

myApp.service('Permission', function($resource) {
  var Permission = $resource('permissions');
  return Permission;
});

当我检索用户时,返回的json具有用户的权限:

{"id":1,"username":"Admin","group_id":"1","permissions":[{"id":1,"name":"Create Users"},"id":2,"name":"Delete Users"}]}

这意味着当我检索用户时,我可以使用.permissions访问他/她的权限。例如

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返回资源列表? 是否有更简单的事情可以做而不是等待承诺在这里解决?


In Angular, some method calls return Objects, and some return Resources, which make them difficult to compare. I have a user model and a permission model. The user model is defined:

myApp.service('User', function($resource) {
  var User = $resource('users/:userId.json');
  return User;
});

And the permission model is defined:

myApp.service('Permission', function($resource) {
  var Permission = $resource('permissions');
  return Permission;
});

When I retrieve a user, the json returned has the user's permissions:

{"id":1,"username":"Admin","group_id":"1","permissions":[{"id":1,"name":"Create Users"},"id":2,"name":"Delete Users"}]}

This means when I retrieve a user, I can access his/her permissions with .permissions For example

User.get({userId: 1}).permissions

I want to compare this with the list of all permissions, and get a list of the permissions that the user does not already have:

$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);
  });
});

The problem is, all is an array of Resources, and u.permissions is an array of Objects. Is there a simple way to get u.permissions to return a list of resources? Is there something simpler I can do instead of waiting for the promises to resolve here?


原文:https://stackoverflow.com/questions/24789080
更新时间:2021-03-04 21:03

最满意答案

返回一个承诺而不是隐藏它

$scope.userLogin = function (info) {
    return $http.post('/authenticate_user', info);
}

用法

userLogin({name: '', password: ''}).then(function(success) {
  console.log(success)
})

Return a promise instead of hiding it

$scope.userLogin = function (info) {
    return $http.post('/authenticate_user', info);
}

usage

userLogin({name: '', password: ''}).then(function(success) {
  console.log(success)
})

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。