programing

리스앵귤러와 함께 GET을 통해 파라미터 배열을 전송하는 방법

copyandpastes 2023. 3. 15. 23:32
반응형

리스앵귤러와 함께 GET을 통해 파라미터 배열을 전송하는 방법

다음과 같은 API의 get 파라미터를 통해 필터 배열을 전송해야 합니다.

/myList?filters[nickname]=test&filters[status]=foo

이렇게 직접 객체를 전송하면 다음과 같이 됩니다.

Restangular.one('myList').get({filters: {
    nickname: 'test',
    status: 'foo'
}});

실제로 전송된 쿼리는

?filters={"nickname":"test","status":"foo"}

실제 어레이를 송신하는 방법다른 방법을 생각해 봐야 할까요?

방법을 찾았습니다. 필터 개체를 반복하여 이름에 []을(를) 사용하여 새 개체를 만들어야 합니다.

var query = {};
for (var i in filters) {
    query['filters['+i+']'] = filters[i];
}

Restangular.one('myList').get(query);

제작:

&filters%5Bnickname%5D=test

누군가 더 나은 해결책을 가지고 있나요?

이것을 시험해 보세요.

Restangular.all('myList').getList({filters: {
    nickname: 'test',
    status: 'foo'
}});

제어된 파라미터가 매우 적은 경우 이 방법을 사용할 수 있습니다.

필터가 거의 없는 경우:

    var api = Restangular.all('yourEntityName');
    var params = {  commonWay          : 'value1',
                   'filter[property1]' : filterVariable1,
                   'filter[property2]' : filterVariable2
                 };

    api.getList(params).then(function (data) {
        alert(data);
    });

이게 도움이 됐으면 좋겠어요.

JSON을 사용하여 내용을 문자열화하다

{
  "startkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]),
  "endkey": JSON.stringify(["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e", {}]),
}

로 변환됩니다.

?endkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",+%7B%7D%5D&startkey=%5B"Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"%5D

예.

?endkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e",{}]&startkey=["Forum-03fa10f4-cefc-427a-9d57-f53bae4a0f7e"]

언급URL : https://stackoverflow.com/questions/18447146/how-to-send-an-array-of-parameter-through-get-with-restangular

반응형