我无法弄清楚编辑的保存位置。看起来当我们进行编辑时,编辑将直接进入本地存储,并立即保存。但是视图的更改方法在任何地方都没有save()。你知道这个魔法是如何完成的吗?
change: function () {
var value = this.get('value');
if (Ember.isEmpty(value)) {
this.get('controller').removeTodo();
}
},
我正在查看Chrome源代码中的源代码。
答案 0 :(得分:2)
在这一行完成:https://github.com/tastejs/todomvc/blob/gh-pages/architecture-examples/emberjs/js/models/todo.js#L10
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
模型具有观察者设置,当模型的todoDidChange
或isCompleted
属性发生变化时,它会触发函数title
。在函数this.get('store').commit()
内部调用,将更改保存到本地存储。
希望它有所帮助。