【问题标题】:Ember Data & Ember Fire Out of Sync CheckboxesEmber 数据和 Ember Fire 不同步复选框
【发布时间】:2016-04-26 20:42:22
【问题描述】:

我正在浏览 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 连接起来?

2016 年 1 月 21 日更新

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

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

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

【问题讨论】:

    标签: javascript ember.js firebase emberfire


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的回复@kautilya,很高兴知道。我在质疑它,因为当我连接了不同的后端时,以这种方式切换复选框也会将结果保存到后端。一旦我集成了 emberfire,那部分就不会再自动发生了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多