使用emberjs 1.5.1和ember-data 1.0.0-beta.5。 我有几个型号:
App.Queue = DS.Model.extend({
queue_id: attr('number', {}),
services: hasMany('service', {})
});
App.Service = DS.Model.extend({
queue: belongsTo('queue', {}),
service_id: attr('number', {}),
});
在这里,我创建queue
个实例,保存它,然后尝试创建service
个实例并将创建的queue
放入belongsTo
字段
var new_queue = controller.store.createRecord('queue', {queue_id: element.Item1.Id});
new_queue.save();
var new_service = controller.store.createRecord('service', {
queue: new_queue,
service_id: subelement.Item1.Id,
});
new_service.save();
在此之后我获得new_service
个实例,queue
字段等于undefined
。任何想法赞赏
答案 0 :(得分:0)
考虑到这是一个非常古老且不再受支持的框架版本,请根据我当时对Ember.js的经验和1.10.0
遵循文档,createRecord的结果无法直接使用。通过使用保存功能返回的保证并将所有内容包装在.then
回调中,您应该能够实现您正在寻找的内容。
var new_queue = controller.store.createRecord('queue', {
queue_id: element.Item1.Id
});
new_queue.save().then(function(new_queue_record) {
var new_service = controller.store.createRecord('service', {
queue: new_queue_record,
service_id: subelement.Item1.Id,
});
new_service.save();
});