반응형
$resource URL 쿼리 문자열
기존 ASP를 실행하는 서버의 제한으로 인해 서비스에서는 쿼리 문자열을 사용해야 합니다.
angular
.module('myServices', ['ng', 'ngResource'])
.factory('Item', ['$resource',
function ($resource) {
return $resource('/api/?p=item/:id');
}]);
추가 쿼리 문자열 파라미터를 추가합니다.
Item.query({test: 123}, on_success, on_error);
그 결과 URL은
/api/?p=item?test=123
버그가 있는 것 같습니다만, 어떻게 하면 버그를 피할 수 있을까요?
편집: https://github.com/angular/angular.js/issues/1511에 제출합니다.
리소스 매개 변수를 사용할 수 있습니다.경로에 자리 표시자를 지정하지 않은 경우, 해당 자리 표시자는 자동으로 쿼리 문자열 매개 변수로 변환됩니다.이런 식으로:
angular
.module('myServices', ['ng', 'ngResource'])
.factory('Item', [
'$resource',
function ($resource) {
return $resource('/api');
}]);
Item.query({p: 'item/1'});
이로 인해 다음과 같은 요구가 발생합니다./api?p=item/1
.
추신.
이미 알고 계시겠지만, 마음에 안 드시는군요.하지만 저는 여전히 이것이 당신의 경우 올바른 방법이라고 생각합니다.당신이 다루고 있는 백엔드의 API 설계가 불량하다는 것을 고려하면, 당신은 Angular를 포장할 수 있습니다.JS 리소스와 다른 서비스가 함께 제공됩니다.
var deferred = $q.defer();
api.api_name.query({
'param':param_value
},
function(response) {
deferred.resolve(response);
},
function(response) {
deferred.reject(response);
}
);
//
angular
.module('module_name')
.factory('api',function($resource){
var api_var={};
api_var.api_name = $resource('url?param_key=:param', {
param: '@param'
}, {
'query': {
method: 'get'
}
});
return api_var;
});
언급URL : https://stackoverflow.com/questions/13147435/query-string-in-resource-url
반응형
'programing' 카테고리의 다른 글
날짜 객체에 대한 대응 프로펠러 검증 (0) | 2023.02.27 |
---|---|
봄콩은 조건부 콩에 의존합니다. (0) | 2023.02.22 |
WordPress 3.5 사용자 지정 미디어 업로드(테마 옵션) (0) | 2023.02.22 |
워드프레스 내에서 pdf를 동적으로 작성하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
React 클래스 내에서 propTypes와 defaultProps를 정적 소품으로 넣어도 될까요? (0) | 2023.02.22 |