TodoMVC Ember的编辑在哪里得到保存?

时间:2013-09-05 22:59:42

标签: ember.js todomvc

我无法弄清楚编辑的保存位置。看起来当我们进行编辑时,编辑将直接进入本地存储,并立即保存。但是视图的更改方法在任何地方都没有save()。你知道这个魔法是如何完成的吗?

change: function () {
    var value = this.get('value');

    if (Ember.isEmpty(value)) {
        this.get('controller').removeTodo();
    }
},

我正在查看Chrome源代码中的源代码。

1 个答案:

答案 0 :(得分:2)

在这一行完成:https://github.com/tastejs/todomvc/blob/gh-pages/architecture-examples/emberjs/js/models/todo.js#L10

Todo模型

Todos.Todo = DS.Model.extend({
  title: DS.attr('string'),
  isCompleted: DS.attr('boolean'),

  todoDidChange: function () {
    Ember.run.once(this, function () {
      this.get('store').commit();
    });
  }.observes('isCompleted', 'title')
});

基本上发生的事情是,正确的Todo模型具有观察者设置,当模型的todoDidChangeisCompleted属性发生变化时,它会触发函数title。在函数this.get('store').commit()内部调用,将更改保存到本地存储。

希望它有所帮助。