programing

AngularJS $resource는 url 대신 쿼리 파라미터로 ID를 전달합니다.

oldcodes 2023. 3. 10. 22:44
반응형

AngularJS $resource는 url 대신 쿼리 파라미터로 ID를 전달합니다.

url의 product id 부분을 (쿼리 파라미터가 아닌) rest API에서 데이터를 취득해야 합니다.

공장:

.factory('Products', ['$resource',
    function($resource) {
        return $resource('products/:productId', {
            productId: '@id'
        }, {
            query: {
                isArray: false
            },
            update: {
                method: 'PUT'
            }
        });
    }
])

컨트롤러:

$scope.getProduct = function(id, from) {
    $scope.product = Products.get({ id: id }, function(){
        console.log($scope.product);
    });
}

내 URL은 다음과 같이 구성됩니다.

/products?id=5426ced88b49d2e402402205

다음 대신:

/products/5426ced88b49d2e402402205

왜 그런지 알아요?

전화할 때Products.get()컨트롤러에서 올바른 파라미터 이름을 사용하고 있지 않습니다('id' 대신 'productId'를 사용해야 합니다).$resource대신 다음과 같이 호출해 보십시오.

Products.get({ productId: id })

다음은 그 원리에 대해 설명하는 문서의 일부입니다.

파라미터 오브젝트의 각 키 값은 처음에 URL 템플릿에 바인드되고 다음으로 초과 키가 url 검색 쿼리에 추가됩니다(있는 경우).

이 경우 URL에서 "id"를 매개 변수로 찾을 수 없으므로 쿼리 문자열에 추가합니다.

언급URL : https://stackoverflow.com/questions/26451858/angularjs-resource-passes-id-as-query-parameter-instead-in-url

반응형