0

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

我没有使用教程中的 ember-cli-mirage,而是连接了 Firebase,其中大部分都很好用。我对使用 Firebase 的 Angular 和 Dart 很满意,但我才刚刚开始学习 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。是否需要做一些特定的事情来将 Ember Checkbox 助手与 EmberFire 连接起来?

Ember 数据与 Firebase

2016 年 1 月 21 日更新

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

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

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

4

1 回答 1

0

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

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

最初您只是更改当前状态。更详细地查看 ember 检查器。它显示当前状态以及说规范状态。但是我没有使用 ember firebase 适配器进行太多工作,因此无法对此发表更多评论。

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

于 2016-01-22T18:43:31.710 回答