【发布时间】:2014-01-06 11:57:31
【问题描述】:
从服务器获取多条记录后,我将它们交给(数组)控制器。记录数组显示在表格中,并且可以通过拖放修改记录的顺序。每次删除后,每条记录的sort 属性都会更新以反映新的排序顺序。
保存记录会触发对某些记录的PUT 请求和对其他记录的POST 请求。这可能是什么原因?奇怪的是POST 请求包含记录的id。我假设任何具有有效id 的记录都会触发PUT 请求。
为了清楚起见,我使用 Ember Data 作为应用程序的模型层。
App.ProjectsIndexController = Ember.ArrayController.extend({
sortProperties: ['sort'],
updateSortOrder: function() {
this.beginPropertyChanges();
this.forEach(function(project) {
// UPDATE PROJECT
}, this);
this.endPropertyChanges();
this.forEach(function(project) {
project.save();
});
}
});
更新:在进一步调试此问题后,我注意到 Ember Data 为其中一条记录创建了一条新记录,这解释了为什么会触发 POST 请求。但是,不清楚为什么要为具有有效id 的现有记录创建记录。
【问题讨论】:
-
Hmm.. 设置了
id并不意味着 Ember 将根据定义假定它是现有记录(因此使用 PUT)。我很想看到更多代码/上下文。如果你想创建一个 jsbin,这里有一个带有 ember 数据的模板:jsbin.com/ogorab/316/edit. -
确实如此,但我的意思是说
id包含在初始提取的响应中,这应该表明 Ember Data 它是现有记录。
标签: ember.js ember-data