Din*_*ine 3 javascript angularjs
我想创建一个服务,根据参数调用后端.这段代码不起作用,但我希望它能说明我想要实现的目标:
myproject.factory('Item', function($resource) {
if (@id !== undefined)
return $resource('/resource/item/:id/item.json', {id: '@id'});
else if (@userid !== undefined)
return $resource('/resource/user/:userid/items.json', {userid: '@userid'});
});
Run Code Online (Sandbox Code Playgroud)
基本上第一个选项只返回一个项目的id,第二个选项返回userid的几个项目.
我希望能够像这样调用该服务:
$scope.item = Item.get({id: id}, function() {...}
Run Code Online (Sandbox Code Playgroud)
要么
$scope.items = Item.query({userid: userid}, function() {...}
Run Code Online (Sandbox Code Playgroud)
实现类似目标的最佳方式是什么?我是否需要为所有内容创建单独的服务?
谢谢!
您可以使用自定义actions参数覆盖默认URL :请参阅$ resource docs
我的意思是这样的:
$resource('/resource/item/:id/item.json', {}, {
query: {
url: '/resource/user/:userid/items.json',
method: 'GET',
isArray: true
}
});
Run Code Online (Sandbox Code Playgroud)
现在.get()和其他请求将使用默认URL,同时.query()应使用自定义URL.
请注意,该url属性是Angular 1.2中的新属性(现在是稳定版本).
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |