エンバー オブジェクトがあり、それがダーティな状態かどうかを知りたいです。
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 を直接呼び出している場合は機能しますが、embers バインディングを使用している場合はその set 関数を使用していないようです。ログを追加しましたが、このメソッドは通常の emberjs バインディング ワークフローでは呼び出されません。
私が試したもう 1 つのことは、オブザーバーを追加してダーティ フラグを切り替えることです。
App.Post = Ember.Object.create({
hasBeenModified: function() {
this.set("isDirty", true);
}.observes("title")
})
理由は不明ですが、モデル レベルで監視を使用すると、バインディングが UI で機能しなくなります。