Ember数据& Ember Fire不同步复选框

时间:2016-01-20 20:13:22

标签: javascript ember.js firebase emberfire

我正在阅读EmberJS教程并创建TodoMVC:http://www.thetechcofounder.com/getting-started-with-ember-js-using-ember-cli/

我没有使用教程中的ember-cli-mirage,而是连接了Firebase,其中大部分工作都很棒。我很喜欢Angular和Dart with Firebase,但我刚开始学习Ember。

我正在努力使用复选框输入而不更新Firebase,我不确定从何处开始。

在我的组件中我有

{{input type="checkbox" checked=todo.complete class="toggle"}}

我的模型看起来像这样:

export default DS.Model.extend({
    title: DS.attr('string'),
    complete: DS.attr('boolean')
});

在Chrome中使用Ember Inspector我可以看到ember数据得到了适当的更新,但这种改变永远不会出现在firebase中。是否有一些特定的东西需要用EmberFire连接Ember Checkbox助手?

Ember Data vs Firebase

2016年1月21日更新

如果我向ember组件todo-item.js添加一个更改处理程序,我可以发送一个动作并按预期方式工作。

  change: function(e) {
    this.sendAction('updateTodo', this.get('todo'));
    return false;
  },

不确定这是否是最合适的方式,但它暂时让我前进。

1 个答案:

答案 0 :(得分:0)

是的,这是正确的方法。 看看Ember指南(它们很棒)

  

每条记录都有一个显式跟踪内容的currentState属性   在任何给定时间记录记录。例如,如果是记录   新创建并尚未发送到适配器进行保存,它   将在root.loaded.created.uncommitted状态。如果有记录   对其进行了本地修改,正在进行中   保存后,记录将处于root.loaded.updated.inFlight状态。   (这种状态路径将在下面更详细地解释。)

最初你只是改变当前的状态。有一个更详细的看看ember检查器。它显示当前状态以及规范状态。但是我没有使用ember firebase适配器,所以不能对此进行评论。

快乐学习Ember。愿原力与你同在 。 :)