Ember.js 如何在ember data 1.0中提交包含相关模型数据的表单?
我正在从表单数据和另一个承诺(针对相关记录)创建一个记录 这里是我关注的基本JSONEmber.js 如何在ember data 1.0中提交包含相关模型数据的表单?,ember.js,ember-data,Ember.js,Ember Data,我正在从表单数据和另一个承诺(针对相关记录)创建一个记录 这里是我关注的基本JSON //appointment { "id": 6, "details": "test", "customer": 1 } //customer { "id": 1, "name": "Sle eep", "appointments": [6] } 我的余烬数据模型如下所示 App.Appointment = DS.Model.extend({ details: attr('stri
//appointment
{
"id": 6,
"details": "test",
"customer": 1
}
//customer
{
"id": 1,
"name": "Sle eep",
"appointments": [6]
}
我的余烬数据模型如下所示
App.Appointment = DS.Model.extend({
details: attr('string'),
customer: belongsTo('customer', { async: true})
});
App.Customer = DS.Model.extend({
name: attr('string'),
appointments: hasMany()
});
this.store.find('customer', 1).then(function(customer) {
var appointment = {
details: 'foo',
customer: customer.get('id')
}
this.store.createRecord('appointment', appointment).save();
});
当我创建约会时,它当前看起来像这样
App.Appointment = DS.Model.extend({
details: attr('string'),
customer: belongsTo('customer', { async: true})
});
App.Customer = DS.Model.extend({
name: attr('string'),
appointments: hasMany()
});
this.store.find('customer', 1).then(function(customer) {
var appointment = {
details: 'foo',
customer: customer.get('id')
}
this.store.createRecord('appointment', appointment).save();
});
上面的问题是,当表单数据是承诺时,我的序列化程序做得不好。这就是我创建记录的方式吗?如果没有,这个创建应该是什么样子的
先谢谢你
更新
再看一看,问题似乎出在belongsTo上的async:true。在“createRecord”之前,我可以看到以下内容
对象{详细信息:“asd”,客户:1}
但是,当我跳转到ember data的“createRecord”方法(在RestaAdapter中)时,我注意到现在客户再次被表示为承诺(而不是在调用该方法之前看到的整数值或字符串值)为什么不在创建记录并发送之前等待查找结果得到解决
var self = this,
promise = this.store.find('customer', 1); //just to show it's a promise
promise.then(function(customer){
var appointment = {
details: 'foo',
customer: customer
}
self.store.createRecord('appointment', appointment).save();
},{
alert("uh oh end of the world, couldn't find customer");
});
Async并没有很好的文档记录,而且似乎有一些随意的副作用(它仍处于测试阶段,所以我还没有做出重大判断)。也就是说,你的约会有很多没有定义,这里有一个游乐场
我在上面添加了一点细节-似乎async:true可能是本例中问题的一部分是的,我不会怀疑,async有点不可靠,请参阅更新的答案。我创建了一个带有余烬数据的问题,因为它看起来像您提到的库中的一个bug