资源删除时的Angular CRUD解析ID

时间:2015-01-05 22:05:43

标签: javascript angularjs angular-resource

我正在尝试编写一个删除答案的函数:

// Remove an answer
$scope.removeAnswer = function(answer) {
  Answers.remove(answer._id);
};

但是,我正在抛出控制台错误:

DELETE http://localhost:9000/api/answers?0=5&1=4&10=7&11=4&12=2&13=c&14=0&15=0&16=0&17=0&18=0&19=0&2=7&20=0&21=0&22=0&23=4&3=3&4=d&5=0&6=1&7=4&8=2&9=d 404 (Not Found)

当我console.log(answer._id)时,我得到一个合理的ID,例如348374831 ...

为什么将id转换为奇怪的格式以及如何解决?

这似乎是一个相同的问题,虽然答案并没有真正解释问题:AngularJS resource - encoding url string parameter as an array

1 个答案:

答案 0 :(得分:1)

这样做的核心方法是:

$scope.removeAnswer = function(answer) {
  Answers.remove({
      id: answer._id
 });
};

或代替id使用您在$resource工厂定义中使用的核心名称。 例如:

var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user) {
  user.abc = true;
  user.$save();
});

$resource需要object参数。以下是Angular docs

中的示例