所以我有一个像这样的资源工厂:
(function() {
'use strict';
app.factory('WidgetFactory', [ '$resource', function($resource) {
return $resource('http://localhost:8282/widget/:widgetId', { widgetId : '@id'},{
rate: {method:'POST', params:{applyRating:true}}
});
}]);
}());
然后在我的控制器中,我想获得id为1的小部件:
this._widgets = WidgetFactory.get({ id:1 }); // or WidgetFactory.query({ id:1 })
但我当时的请求是http://localhost:8282/widget?id=1
而不是widget/1
如何从控制器制定请求$ resource以生成widget/1
?我想我的noob问题是在使用我的资源工厂时如何传入'@id'
参数('@id'
如何真正起作用?)
答案 0 :(得分:1)
最好匹配paramDefault键/值,原因是最近在angularjs $resource not replacing variable in url template for POST中描述的原因
那么,如果您的$ resource配置看起来像
app.factory('WidgetFactory', [ '$resource', function($resource) {
return $resource('http://localhost:8282/widget/:widgetId', { widgetId : '@widgetId'},{
rate: {method:'POST', params:{applyRating:true}}
});
}]);
您的控制器调用看起来像
this._widgets = WidgetFactory.get({ widgetId:1 });