EmberJS:在ember-data模型上保存相关的hasMany关系仅在其他显示上创建重复

时间:2015-01-27 17:20:22

标签: ember.js ember-data firebase emberfire

从主模型中保存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 Developer Toolbar进行调试,我会看到两个相同对象的实例 - 相同的ID,相同的余烬模型:

<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模板引擎......也许它甚至不能错误处理事件?

我怀疑它是什么样的,因为我认为在同一个数组中不可能有两个相关模型的实例,因为firebase中的相​​关模型数据是由-primary-key:true存储的。 ..

有人可以指导我从哪里开始调试吗?

由于

1 个答案:

答案 0 :(得分:0)

Per Kato:Sara发布这是一个版本不兼容,她是对的。 EmberFire还没有为Ember&gt;做好准备1.9.1,但1.9.1完全按预期工作:)