我有一个烬对象,我想知道它是否处于肮脏状态。检测Ember.Object是否脏的最佳方法
var App.Post = Ember.Object.create({
title: "Test",
isDirty: false
});
App.Post.set("title", "Test2");
App.Post.get("isDirty") // Should === true
就目前而言,我曾尝试过载设定为对象
App.Post = Ember.Object.create({
set: function(path, value) {
this._super(path, value);
this._super("isDirty", true);
}
})
,当我直接调用它的工作原理myObject.set,但它似乎并没有使用一套功能使用时,余烬绑定。我添加了日志,并且此方法不是由常规的emberjs绑定工作流程调用的。
我试过的另一件事是添加一个观察者切换脏标志。
App.Post = Ember.Object.create({
hasBeenModified: function() {
this.set("isDirty", true);
}.observes("title")
})
由于原因仍然未知,当我在模型级别使用观察时,我的绑定不再在UI中工作。
你可能想看看烬数据。它为您提供了一个Model对象(从Object扩展而来),它可以处理所有“isDirty”需求。它具有一系列其他很好的功能,可以轻松获取/更新模型对象和创建模型关系。而在更高层次上,你不应该再担心“isDirty”状态。使用ember的一个要点是不再担心数据状态的所有管理,只需将模板绑定到数据(数据更新和模板更新;不需要额外的引导)。 – SciSpear 2012-08-10 14:03:16
因为我根本不使用ember-data,所以我宁愿有一些地方不需要添加ember-data来验证脏乱。我想我会试着深入,比较我的对象。 – gingman 2012-08-10 14:21:01