page - javascript link href
El recurso AngularJS $ pasa el ID como parĂ¡metro de consulta en lugar de url (1)
Cuando llama a Products.get()
en el controlador, no está usando el nombre de parámetro correcto (debe usar "productId" en lugar de "id" según su definición de $resource
). Intenta llamarlo así en su lugar:
Products.get({ productId: id })
Aquí hay un fragmento de la documentación de $resource
que explica cómo funciona:
Cada valor de clave en el objeto de parámetro primero se enlaza con la plantilla de URL si está presente y luego, cualquier exceso de claves se agrega a la consulta de búsqueda de URL después de?.
En su caso, no encuentra "id" como parámetro en la URL, por lo que agrega eso a la cadena de consulta.
Necesito obtener datos de una API de descanso, con la parte de identificación del producto de la URL (y no como parámetro de consulta).
La fábrica:
.factory(''Products'', [''$resource'',
function($resource) {
return $resource(''products/:productId'', {
productId: ''@id''
}, {
query: {
isArray: false
},
update: {
method: ''PUT''
}
});
}
])
El controlador:
$scope.getProduct = function(id, from) {
$scope.product = Products.get({ id: id }, function(){
console.log($scope.product);
});
}
Mi url se construye como:
/products?id=5426ced88b49d2e402402205
en lugar de:
/products/5426ced88b49d2e402402205
¿Alguna idea de por qué?