Angularjs 如何在$resource的自定义操作中定义路径节?

Angularjs 如何在$resource的自定义操作中定义路径节?,angularjs,Angularjs,是否可以指定自定义$resource操作的路径 我想写一些类似于: angular.module('MyServices', [ 'ngResource' ]).factory('User', [ '$resource', ($resource)-> $resource('/users', {}, { names: { path: '/names', method: 'GET', isArray: true } }) ]) 所以我可以像这样使用它: User.names(

是否可以指定自定义$resource操作的路径

我想写一些类似于:

angular.module('MyServices', [ 'ngResource' ]).factory('User', [ '$resource', ($resource)->
  $resource('/users', {}, {
    names: { path: '/names', method: 'GET', isArray: true }
  })
])
所以我可以像这样使用它:

User.names() # GET /users/names

AngularJS的当前版本不直接支持它,但有一个开放版本,因此在不久的将来有可能支持它

在此之前,您有3种选择:

1) 在路径中使用变量:

$resource('/users/:names', {}, {
    names: { params: {names: 'names'}, method: 'GET', isArray: true }
  })
2) 改用

3) 在AngularJS的猴子补丁版本上,尝试上述PR中的代码检查此日志(摘录):


一种不那么雄辩但同样有效的方法:

var resourceUrl =  '/users';
return $resource(resourceUrl, {}, {
    names: { path: resourceUrl + '/names', method: 'GET', isArray: true }
})

来自角度文档:$resource 您可以为自定义操作指定“url”,该操作将覆盖上一个操作

angular.module('MyServices', ['ngResource']).factory('User', ['$resource', ($resource)-> $resource('/users', {}, {
names: { url: '/users/names', method: 'GET', isArray: true }
})])

它在我的项目中使用angular 1.3.10

现在Angular 1.2中有一个
url
属性-请参见:接受的答案早已过时;不仅是它所说的功能被合并了,而且还有。这真是太棒了。谢谢
angular.module('MyServices', ['ngResource']).factory('User', ['$resource', ($resource)-> $resource('/users', {}, {
names: { url: '/users/names', method: 'GET', isArray: true }
})])