使用保存或放置Restangular结果“未定义”包含在URL

时间:2015-07-28 14:42:45

标签: restangular

我使用Restangular下载对象,更新它然后尝试使用save方法保存回服务器。以下是检索对象的代码:

Restangular.one("survey", surveyID).getList().then (
  function (response) {
    $scope.survey = response[0];
  }
);

这会将$scope.survey设置为正确的“restangularized”对象,其中包含从GET请求返回的字段,以及saveput等方法。

如果我在对$ scope.survey对象进行一些编辑后再调用以下函数:

$scope.saveChanges = function () {
  $scope.survey.save();
};

restangular尝试使用URL /survey/1/undefined作为PUT请求(1是对象的正确ID)。

我的survey对象没有id字段(而是surveyID),所以我怀疑这可能是问题。但是,将surveyID字段替换为id字段会将网址更改为/survey/1/undefined/1

我已经将GET请求返回的对象剥离为原始对象,这并没有改变这种情况。

为什么生成了错误的路由?

1 个答案:

答案 0 :(得分:0)

II发现问题实际上是REST服务;当使用GET /surveys/1调用时,它返回一个数组,其中包含一个对象,而不是返回对象本身。

我认为这会让人觉得正在访问一个集合(注意我必须调用getList而不是get才能获得一个正确的resangularized对象。)