AngularJS 的所有操作 $resource
添加为$customAction
资源的方法,以便我可以将它们作为资源实例的方法调用,例如:
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user) {
user.abc = true;
user.$save();
});
$save
是save
操作并可以在 user
上调用实例。
我现在定义了以下自定义操作,导致 $attributes
user
的每个实例上的方法:
var User = $resource('/user/:userId', {userId:'@id'}, {
attributes: { method: 'GET', url: '/user/:userId/attributes', isArray: true }
});
如果我现在尝试调用此方法,则会收到错误 Object #<Resource> has no method 'push'
:
User.get({userId:123}, function(user) {
var attrs = user.$attributes(); // error
// ...
});
我对自定义操作的概念理解错误了吗?
最佳答案
看来你应该使用params而不是url
var User = $resource('/user/:userId/:customAction', {userId:'@id'}, {
attributes: { method: 'GET', params: { userId:'@id', customAction: 'attributes'}, isArray: true }
});
关于javascript - Angular $resource 中的自定义实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477529/