Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular$resource中的自定义实例方法_Javascript_Angularjs - Fatal编程技术网

Javascript Angular$resource中的自定义实例方法

Javascript Angular$resource中的自定义实例方法,javascript,angularjs,Javascript,Angularjs,AngularJS$resource的所有操作都作为$customAction方法添加到资源中,以便我可以将它们作为资源实例上的方法调用,例如: var User = $resource('/user/:userId', {userId:'@id'}); User.get({userId:123}, function(user) { user.abc = true; user.$save(); }); $save是保存操作,可以在用户实例上调用 现在,我定义了以下自定义操作,在用户的每

AngularJS
$resource
的所有操作都作为
$customAction
方法添加到资源中,以便我可以将它们作为资源实例上的方法调用,例如:

var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user) {
  user.abc = true;
  user.$save();
});
$save
保存
操作,可以在
用户
实例上调用

现在,我定义了以下自定义操作,在
用户
的每个实例上产生了一个
$attributes
方法:

var User = $resource('/user/:userId', {userId:'@id'}, {
  attributes: { method: 'GET', url: '/user/:userId/attributes', isArray: true }
});
如果现在尝试调用此方法,则会出现错误
对象#没有方法“push”

User.get({userId:123}, function(user) {
  var attrs = user.$attributes();    // error
  // ...
});

我对自定义操作的概念理解错误了吗?

似乎应该使用参数而不是url

var User = $resource('/user/:userId/:customAction', {userId:'@id'}, {
  attributes: { method: 'GET', params: { userId:'@id', customAction: 'attributes'}, isArray: true }
});

对我来说,最终的解决办法是改用。它支持使用链接语法的嵌套资源,以便我可以访问以下内容:


Restangular.one(“用户”,123).all(“属性”).get()