我使用Restangular下载对象,更新它然后尝试使用save
方法保存回服务器。以下是检索对象的代码:
Restangular.one("survey", surveyID).getList().then (
function (response) {
$scope.survey = response[0];
}
);
这会将$scope.survey
设置为正确的“restangularized”对象,其中包含从GET请求返回的字段,以及save
,put
等方法。
如果我在对$ 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请求返回的对象剥离为原始对象,这并没有改变这种情况。
为什么生成了错误的路由?
答案 0 :(得分:0)
II发现问题实际上是REST服务;当使用GET /surveys/1
调用时,它返回一个数组,其中包含一个对象,而不是返回对象本身。
我认为这会让人觉得正在访问一个集合(注意我必须调用getList
而不是get
才能获得一个正确的resangularized对象。)