0

从主要模型中保存 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 存储的。

谁能指导我从哪里开始调试?

谢谢

4

1 回答 1

0

Per Kato:Sara 说这是版本不兼容,她是正确的。EmberFire 还没有为 Ember > 1.9.1 做好准备,但 1.9.1 完全按预期工作:)

于 2015-01-30T17:23:31.343 回答