Jih*_*hel 27 angularjs restangular
我必须通过API中的get参数发送一个过滤器数组,如下所示:
/myList?filters[nickname]=test&filters[status]=foo
Run Code Online (Sandbox Code Playgroud)
现在如果我像这样直接发送一个对象:
Restangular.one('myList').get({filters: {
nickname: 'test',
status: 'foo'
}});
Run Code Online (Sandbox Code Playgroud)
真正发送的查询是
?filters={"nickname":"test","status":"foo"}
Run Code Online (Sandbox Code Playgroud)
如何发送真正的数组?我应该考虑替代方案吗?
Jih*_*hel 19
我找到了一种方法,我必须迭代过滤器对象以创建一个名称为[]的新对象:
var query = {};
for (var i in filters) {
query['filters['+i+']'] = filters[i];
}
Restangular.one('myList').get(query);
Run Code Online (Sandbox Code Playgroud)
生产:
&filters%5Bnickname%5D=test
Run Code Online (Sandbox Code Playgroud)
有人有更好的解决方案吗?
mis*_*eka 11
试试这个:
Restangular.all('myList').getList({filters: {
nickname: 'test',
status: 'foo'
}});
Run Code Online (Sandbox Code Playgroud)
小智 7
如果你有很少的控制参数,你可以用这种方式.
假设你有几个过滤器:
var api = Restangular.all('yourEntityName');
var params = { commonWay : 'value1',
'filter[property1]' : filterVariable1,
'filter[property2]' : filterVariable2
};
api.getList(params).then(function (data) {
alert(data);
});
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助.
小智 7
使用JSON对内容进行字符串化
{
"startkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]),
"endkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e", {}]),
}
Run Code Online (Sandbox Code Playgroud)
翻译成
?endkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",+%7B%7D%5D&startkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"%5D
Run Code Online (Sandbox Code Playgroud)
即
?endkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",{}]&startkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16512 次 |
| 最近记录: |