我有一个的hasMany /属于关联关系为什么在成功创建hasMany之后需要手动pushObject?
App.Appointment = DS.Model.extend({
employee: belongsTo('employee', { async: true})
});
App.Employee = DS.Model.extend({
appointments: hasMany('appointment', { async: true})
});
我有一个简单的表格,让我创建约会
var appointment = {
employee: employee (another ember-data model)
}
this.store.createRecord('appointment', appointment).save().then(function(apt) {
self.get('target').transitionTo('day.index');
}
如果我做了我上面的“雇员”阵列从来没有正确显示倒数(即它不反映新的约会,当我做一些后来像employee.get('约会');
我已经能够“解决”这个问题瓦特/类似于下面的东西
this.store.createRecord('appointment', appointment).save().then(function(apt) {
employee.get('appointments').pushObject(apt);
employee.save();
self.get('target').transitionTo('day.index');
}
我不喜欢这样的原因有二
我觉得如果我有烬数据接线是否正确,它只是 应该“知道”我已经添加了一个新的约会w^/相关的员工(如 我看到越网络线路的)
这迫使我的hasMany一个“查找”(这样的话它激发了一个请求 要求员工APTS - 通常搞乱的范围“如何 很多”适合我想展示给定的上下文)。
我的关系在这里设置正确吗?或者这是一个烬数据1.0测试版4/5中的错误?
我目前使用的余烬数据1.0测试版4 ember.js 1.3.1
这是不幸的听,是那种希望[夫妻关系逆]的(http://emberjs.com/api/data/classes/DS.html#method_hasMany)将解决这些类型的问题,从预烬数据1.0。如果您明确指定了反向关系,就像他们在文档中所建议的那样,它会起作用吗? – Adam
这只适用于非异步。 Async在问题中有点有趣,他们不想在请求它们之前获取记录。然后,如果你注入一个项目,那么你如何表示你想要新记录与那一个记录 – Kingpin2k
这更像是一个困境而不是一个错误。我不确定是否适合所有解决方案。 – Kingpin2k