从主要模型中保存 hasMany 关系时遇到奇怪的问题,寻求建议:
我的设置:
Ember : 1.11.0-beta.1+canary.48e11592
Ember Data : 1.0.0-beta.14.1
EmberFire : 1.3.2
jQuery : 1.11.2
关系(伪):
customer hasMany widgets
widget belongsTo customer
addRelatedWidget: function() {
var data = this.get('addWidget');
var model = this.get('model');
var widget = this.store.createRecord('widget', {
name: data.name.trim(),
_time: new Date().getTime(),
customer: model,
});
widget.save().then(function(widget){
model.save();
});
this.set('addWidget', {
name: ''
});
}
症状:当我从客户视图添加小部件并保存保存时,如上所述,我正在添加的 Chrome 浏览器正确显示了新保存的小部件的一个实例。FireBase 的数据正确地显示了新的小部件,并按预期加入了客户。但是,如果我打开了任何其他浏览器窗口 - 无论是另一个 chrome、隐身窗口还是 safari - 我都会在相关小部件列表中显示两个版本的小部件。
如果我在 Chrome 中使用 Ember 开发人员工具栏进行调试,我会看到 SAME OBJECT 的两个实例 - 相同的 id,相同的 ember 模型:
<ember-app@model:widget::ember1553:-JggK7ByZqaNhrJ4PJyq>
<ember-app@model:widget::ember1553:-JggK7ByZqaNhrJ4PJyq>
并从 Ember 工具栏中的 DS.model.tab 选项卡查看序列化模型:
Ember Inspector ($E): Object {_time: 1422377911584, customer: "12", name: "Adding", id: "-JggK7ByZqaNhrJ4PJyq"}
Ember Inspector ($E): Object {_time: 1422377911584, customer: "12", name: "Adding", id: "-JggK7ByZqaNhrJ4PJyq"}
它们似乎是完全相同的模型实例的两个完全相同的副本。
所以我一直无法调试这个。由于它不是 firebase 的数据并且工作浏览器显示正常,我想知道它是否是 1.9 中的新 HTMLBars 模板引擎......也许它甚至是 emberfire 错误地处理事件?
我怀疑它是 emberfire,因为我想不可能在同一个数组中有两个相关模型的实例,因为 firebase 中的相关模型数据是由 -primary-key: true 存储的。
谁能指导我从哪里开始调试?
谢谢