ID数组,Restangular,.several()

时间:2016-02-25 20:27:35

标签: javascript restangular

我正在尝试使用Restangular从基于Node.js的MongoDB实例中获取一系列对象;但是,我无法保证我希望通过ID获取的对象数量始终相同。

为了演示,这里有一个原则的代码片段:

Restangular
    .several('users',
        userList[0], userList[1], userList[2], userList[3], userList[4],
        userList[5], userList[6], userList[7], userList[8], userList[9])
    .get().then(function (users) { //...

userList是作为方法的一部分传入的ID数组:

requestUsersById = function (userList) { //...

问题是我无法保证数组的大小。有没有办法使用Restangular传递ID数组?或者,我只是坚持为每个人提出单独的请求?

理想的结果是:

Restangular
    .several('users', userList)
    .get().then(function (users) { //...

1 个答案:

答案 0 :(得分:1)

Restangular API似乎本身并不支持此功能,但我相信您可以通过使用apply() method来完成您尝试做的事情。

在这种情况下,您可以将集合users的名称附加到userList数组的头部。试试这个:

// Store the userList in a new array to preserve the initial list 
// (not sure if you use it somewhere else
var usersQuery = userList;

// Shift the collection name to be the first parameter in the array
usersQuery.unshift("users");

// Perform the Restangular call
Restangular
    .several.apply(null,usersQuery)
    .get().then(function (users) { //...