Ember.js 余烬数据1.0.x不保存时有很多关系
hasMany关系之一未发回服务器。你应该如何建立双向关系的模型 以下是相关对象:Ember.js 余烬数据1.0.x不保存时有很多关系,ember.js,ember-data,Ember.js,Ember Data,hasMany关系之一未发回服务器。你应该如何建立双向关系的模型 以下是相关对象: Encompass.Selection = DS.Model.extend({ text: DS.attr('string'), submission: DS.belongsTo('submission', {inverse: 'selections'}), }); Encompass.Submission = DS.Model.extend({ shortAnswer: DS.attr('stri
Encompass.Selection = DS.Model.extend({
text: DS.attr('string'),
submission: DS.belongsTo('submission', {inverse: 'selections'}),
});
Encompass.Submission = DS.Model.extend({
shortAnswer: DS.attr('string'),
selections: DS.hasMany('selection'),
testing: DS.hasMany('folder'),
workspaces: DS.hasMany('workspace'),
});
和控制器动作:
testing2: function() {
var submission = this.get('model');
console.log(submission.get('selections.length'));
var newSelection = this.get('store').createRecord('selection', {
text: 'testing2 selection' + new Date().getMilliseconds(),
submission: submission,
coordinates: 'bogus coords',
workspace: this.get('currentWorkspace')
});
//newSelection.save();
console.log(submission.get('selections.length'));
submission.save();
},
当我点击testing2操作时,控制台显示提交首先有一个选择,然后是第二个选择。save()
方法触发post,但它缺少selections对象:
{
submission: {
shortAnswer: "short",
testing: [],
workspaces: ["5271d0147205f15e31000001"]
}
}
我尝试过删除和添加反向映射。奇怪的是,另一部分有很多关系
我发现唯一有效的方法是从
选择中删除提交
字段我也遇到了同样的问题。我试图删除DS.belongTo语句,但没有效果。我使用模型的“save”功能触发一条发送给服务器的消息。我想知道是否有另一种触发方式会导致向服务器发送不同的消息(使用hasMany记录)。以下是hasMany未返回的情况之一
我们有时会看到save()操作序列化的json不包含我们刚才设置的数据,这确实令人费解
selection.set('workspace', workspace)
selection.save()
json可能看起来像:
{
id: 02314892038,
workspace: undefined,
isTrashed: false
}
正在设置工作区,但不是现在。有一个设定它的承诺,如果后端需要,我们应该等待它
selection.set('workspace', workspace);
selection.get('workspace').then(function(){
selection.save();
});
因此,本质上,您可能会看到非确定性行为:
- 适用于此方法/为什么不在此处
- 为我工作
- 过去工作
这不仅适用于集合之后的保存。我见过这样的情况:数据是从早期加载的,但由于某种原因,关系并不完整
我不确定为什么这不能序列化未实现关系的ID(我们总是知道ID,这就是JSON所需要的)