내 Angular 앱에는 서버에서 데이터를 검색하기 위해 $http
을 사용하는 서비스가 있습니다. 서버 끝점은 HMAC 인증을 사용하며 쿼리 문자열 매개 변수가 URL의 특정 순서로 있어야합니다.
Angular sorts the $http
parameters when it builds the URL이므로 맞춤 매개 변수 순서를 지정할 수없는 것처럼 보입니다.
다음은 예입니다 :
this.apiCall = function() {
return $http({
method: 'GET',
url: 'http://example.com/url/v1/endpoint',
params: {
'c': 'cdata',
'a': 'adata',
'b': 'bdata'
}
});
};
http://example.com/url/v1/endpoint?a=adata&b=bdata&c=cdata
로 URL을 구축 할 예정 각도
,하지만 지정된대로 http://example.com/url/v1/endpoint?c=cdata&a=adata&b=bdata
가 PARAMS의 순서를 유지해야합니다.
URL 문자열에 대한 매개 변수를 수동으로 지정할 수 있다는 것을 알고 있지만 매우 친숙하지 않으며 $http
인터셉터에서 쉽게 관리 할 수 없습니다.
ECMAScript에서 객체 정렬이 지정되지 않았으므로 Angular가 매개 변수를 정렬하여 브라우저 구현간에 일관된 동작을 유지하도록 아마 정렬합니다.
관계없이, 매개 변수를 지정된대로 보존하는 URL을 작성하기 위해 매개 변수를 정렬하는 기본 각도 동작을 해결하는 방법을 아는 사람이 있습니까?
나에게 보이면 이미 질문에 답한 것입니다. 링크 된 소스 코드를 살펴보면 매개 변수 순서를 적용하는 유일한 방법은 쿼리 문자열을 직접 구성하고 URL의 일부로 제공하는 것입니다. 특별한'params' 문법을 만나면 설정을 변형시키는'$ http' 데코레이터를 만들 수 있습니다. – hon2a
@ hon2a 그래, 결국 사용자 정의 데코레이터를 작성하여 URL을 작성했습니다. –