2014-12-23 35 views
2

我想打一個PARAM中的角度JS資源可選,如下圖所示:做一個PARAM在angularjs資源可選

當前實現:

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,我想讓id成爲一個可選的參數。可以這樣做嗎?

+0

你可以省略'id:'@ id''從第二個參數調用到'$ resource(...)',並且在各個路由中也省略了'id:null'? – maerics

回答

1

解決方案我發現只是不發送該請求中的參數。

的情況下,只要發送

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' } }, 
     } 
    ); 
    }