我想在角度js资源中创建一个param可选项,如下所示:
目前的实施:
function TrackResource($resource) {
return $resource(
'track/:type/:id',
{ type: 'info', id: '@id' },
{
'info': { method: 'GET', params: { type: 'info', id: '@id' } },
'live': { method: 'GET', params: { type: 'live', id: null } },
'lyrics': { method: 'GET', params: { type: 'lyrics', id: '@id' } },
'rand': { method: 'GET', params: { type: 'rand', id: null } },
'recent': { method: 'GET', params: { type: 'recent', id: null } },
'top': { method: 'GET', params: { type: 'top', id: '@days' } },
'log': { method: 'GET', params: { type: 'log', id: '@id' } },
}
);
}
所以id可以多次为null,所以我不想传递null,而是想让id成为一个可选的参数。可以这样做吗?
答案 0 :(得分:3)
我发现的解决方案就是不在请求中发送该参数。
发送
TrackResource.info({})
如果您不想要第二个选项,它会在查询中自动变为空,请确保您在ResourceStructure中不提及相同内容:
function TrackResource($resource) {
return $resource(
'track/:type/:id',
{ type: 'info', id: '@id' },
{
'info': { method: 'GET', params: { type: 'info', id: '@id' } },
'live': { method: 'GET', params: { type: 'live' } },
'lyrics': { method: 'GET', params: { type: 'lyrics', id: '@id' } },
'rand': { method: 'GET', params: { type: 'rand' } },
'recent': { method: 'GET', params: { type: 'recent' } },
'top': { method: 'GET', params: { type: 'top', id: '@days' } },
'log': { method: 'GET', params: { type: 'log', id: '@id' } },
}
);
}