2016-03-17 35 views
0

我有以下ID:

var myIds = ['somelongId', 'someotherlongid']; 

我想只有從蒙戈對應的記錄(我用的角fullstack)使用$資源。

我廠

angular.module('myApp') 
.factory('MyFactory',function ($resource) { 
    return $resource('/api/things/:id'); 
}); 

我的錯誤代碼返回的所有記錄

MyFactory.query(myIds); 

回答

0

你應該正確查詢,通過傳遞id參數在裏面。你不能在查詢中傳遞數組對象,如果你試圖通過它,那麼這將使該數組字符串化到[Object Object] &它會拋出一個錯誤。

相反,我建議你將任何一個id傳遞給它。

MyFactory.query({ id: myIds[0] }); 

編輯

如果你想傳遞多個ids在查詢語句然後把它作爲,分隔字符串,然後做拆出的是在服務器端密鑰。這樣你可以將多個數組傳遞給服務器&將得到響應數組(.query將使事情完成)。

MyFactory.query({ id: myIds.join(',') }); 

這將創建一個URL作爲

http://localhost/api/things/somelongId,someotherlongid 
+0

你的意思'MyFactory.get'? 'MyFactory.query'需要一個數組的響應,我只會得到一個你正在建議的記錄(錯誤:'期望的響應包含一個數組,但有一個對象')。你是否也意味着正確的設計模式是爲我的數組中的每個項目提出一個單獨的請求? – Mika

+0

如果它會返回單個記錄,然後使用MyFactory.get –

+0

id是唯一的,所以是的。但是,當我給它一個ID列表時,是否有辦法返回記錄列表? – Mika