我需要从rest API获取数据,其中产品ID是url的一部分(而不是作为查询参数)。
该工厂:
.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);
});
}
我的网址的结构如下:
/products?id=5426ced88b49d2e402402205
代替:
/products/5426ced88b49d2e402402205
有什么想法吗?
Products.get()
在控制器中调用时,未使用正确的参数名称(根据的定义,您需要使用“ productId”而不是“ id” $resource
)。尝试这样调用它:
Products.get({ productId: id })
这是文档$resource
的摘录,解释了其工作原理:
如果存在,则将参数对象中的每个键值首先绑定到url模板,然后将所有多余的键附加到?之后的url搜索查询中。
就您而言,在URL中找不到“ id”作为参数,因此将其添加到查询字符串中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句