Ich muss Daten aus einem Rest API abrufen, mit der Produkt-ID Teil der URL (und nicht als Abfrageparameter).
Die Fabrik:
.factory('Products', ['$resource',
function($resource) {
return $resource('products/:productId', {
productId: '@id'
}, {
query: {
isArray: false
},
update: {
method: 'PUT'
}
});
}
])
Der Controller:
$scope.getProduct = function(id, from) {
$scope.product = Products.get({ id: id }, function(){
console.log($scope.product);
});
}
Meine url ist so aufgebaut, wie:
/products?id=5426ced88b49d2e402402205
statt:
/products/5426ced88b49d2e402402205
Irgendwelche Ideen warum?
Vielen Dank, das war es! :) – orszaczky
Also was ist der Zweck des '@' Präfixes dann? "Wenn dem Parameterwert das Präfix @ vorangestellt ist, wird der Wert für diesen Parameter aus der entsprechenden Eigenschaft des Objekts' data' extrahiert (vorausgesetzt, dass eine action-Methode aufgerufen wird). Wenn das 'defaultParam'-Objekt beispielsweise' {someParam : '@someProp'} 'dann ist der Wert von' someParam' 'data.someProp'." Klingt so, als ob Sie in der Lage sein sollten, einen 'id'-Wert zu übergeben, und die Ressource würde es benutzen, um den' productId'-Parameter zu füllen. Aber das ist nicht der Fall. –
Danke! Hat mir heute geholfen! –