I have to send an array of filters through get parameters in an API like this :
/myList?filters[nickname]=test&filters[status]=foo
Now if I send an object directly like this :
Restangular.one('myList').get({filters: {
nickname: 'test',
status: 'foo'
}});
The query really sent is
?filters={"nickname":"test","status":"foo"}
How to send a real array ? Should I thinks about an alternative ?
I found a way to do it, I have to iterate over the filter object to create a new object with the [] in the name :
var query = {};
for (var i in filters) {
query['filters['+i+']'] = filters[i];
}
Restangular.one('myList').get(query);
Produce:
&filters%5Bnickname%5D=test
Someone have better solution ?
Try this:
Restangular.all('myList').getList({filters: {
nickname: 'test',
status: 'foo'
}});
if you have very few and controlled parameters, you can use this way.
Assuming that you have few filters:
var api = Restangular.all('yourEntityName');
var params = { commonWay : 'value1',
'filter[property1]' : filterVariable1,
'filter[property2]' : filterVariable2
};
api.getList(params).then(function (data) {
alert(data);
});
I hope this help you.
stringify the content using JSON
{
"startkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]),
"endkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e", {}]),
}
translates to
?endkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",+%7B%7D%5D&startkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"%5D
i.e.
?endkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",{}]&startkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With