是否可以指定自定义$ resource操作的路径?
我想写一些类似的东西:
angular.module('MyServices', [ 'ngResource' ]).factory('User', [ '$resource', ($resource)->
$resource('/users', {}, {
names: { path: '/names', method: 'GET', isArray: true }
})
])
Run Code Online (Sandbox Code Playgroud)
所以我可以使用它:
User.names() # GET /users/names
Run Code Online (Sandbox Code Playgroud)
当前版本的AngularJS不直接支持它,但是有一个拉取请求打开,因此有可能在不久的将来支持它.
直到那时你有3个选择:
1)在路径中使用变量播放:
$resource('/users/:names', {}, {
names: { params: {names: 'names'}, method: 'GET', isArray: true }
})
Run Code Online (Sandbox Code Playgroud)
2)使用$ http服务,而不是
3)在猴子修补的AngularJS版本上尝试上述PR的代码
检查这个工作Plunker中的日志(摘录):
var app = angular.module('plunker', ['ngResource'])
.controller('MyController',
function($scope, $resource) {
var User = $resource(
'/users/:action',
{},
{
names:{
method:'GET',
params:{action:'names'}
}
}
);
$scope.users = User.get();
$scope.names = User.names();
}
);
Run Code Online (Sandbox Code Playgroud)
一种不太有说服力但同样有效的方法:
var resourceUrl = '/users';
return $resource(resourceUrl, {}, {
names: { path: resourceUrl + '/names', method: 'GET', isArray: true }
})
Run Code Online (Sandbox Code Playgroud)
从Angular文档:https://docs.angularjs.org/api/ngResource/service/ $ resource,您可以为自定义操作指定"url",它将覆盖前一个操作.
angular.module('MyServices', ['ngResource']).factory('User', ['$resource', ($resource)-> $resource('/users', {}, {
names: { url: '/users/names', method: 'GET', isArray: true }
})])
Run Code Online (Sandbox Code Playgroud)
它使用角度1.3.10在我的项目中工作!
| 归档时间: |
|
| 查看次数: |
10534 次 |
| 最近记录: |