好的,所以我觉得我在这里缺少一些基本的东西,但是我无法理解它在阅读文档和其他例子。我在这样的工厂有一个资源:
loteManager.factory('Lotes', function($resource) {
return $resource('./api/lotes/:id',{ id:"@id" }, {
get: {method:'GET', isArray:true}
});
});
我的控制员:
loteManager.controller('LoteCtrl',
function InfoCtrl($scope, $routeParams, Lotes) {
Lotes.get(function (response){
console.log(response);
});
});
当我像这个$resource('./api/lotes/21'
手动定义id时,它可以工作,所以我认为问题是将id传递给工厂,但我已经尝试添加params:{id:"@id"}
,但这也不起作用。
答案 0 :(得分:2)
您需要传入ID。
这样的事情:
loteManager.controller('LoteCtrl',
function InfoCtrl($scope, $routeParams, Lotes) {
Lotes.get({id: $routeParams.loteId}, function (response){
console.log(response);
});
});
...假设您的路线定义如下:
$routeProvider.when('/somepath/:loteId, {
templateUrl: 'sometemplate.html',
controller: LoteCtrl
});
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
答案 1 :(得分:1)