Potrzebuję pobrać dane z reszta API, z identyfikatorem produktu częścią adresu URL (a nie jako parametrem zapytania).
Fabryka:
.factory('Products', ['$resource',
function($resource) {
return $resource('products/:productId', {
productId: '@id'
}, {
query: {
isArray: false
},
update: {
method: 'PUT'
}
});
}
])
Kontroler:
$scope.getProduct = function(id, from) {
$scope.product = Products.get({ id: id }, function(){
console.log($scope.product);
});
}
mój adres URL jest skonstruowany tak:
/products?id=5426ced88b49d2e402402205
zamiast:
/products/5426ced88b49d2e402402205
Jakieś pomysły, dlaczego?
Wielkie dzięki, to było to! :) – orszaczky
Jaki jest więc cel wartości "@" z prefiksem? "Jeśli wartość parametru jest poprzedzona prefiksem @, wówczas wartość tego parametru zostanie wyodrębniona z odpowiedniej właściwości obiektu' data' (podanego podczas wywoływania metody akcji) .Na przykład, jeśli obiektem 'defaultParam' jest' {someParam : '@someProp'} ', wtedy wartość' someParam' będzie miała postać 'data.someProp'." Wygląda na to, że powinieneś być w stanie przekazać wartość 'id', a zasób użyje jej do zapełnienia paramu' productId'. Ale tak nie jest. –
Dziękujemy! Pomógł mi dzisiaj! –