3 つのアイテムを保持するコンテナー オブジェクトがあります。各アイテムにはいくつかのテキスト フィールドがあります (例: text1、text2、text3、text4)。それに加えて、currentItemIndex というプロパティに基づいて現在のアイテムを返す計算プロパティもあります。
したがって、基本的に、これは「アイテム モデル」です。
App.Item = Ember.Object.extend({
text1: null,
text2: null,
text3: null,
text4: null
});
これは計算されたプロパティです
App.currentItemIndex = 0;
App.currentItem = function () {
return App.containerObject[App.get('currentItemIndex')];
}.property('App.currentItemIndex');
モック データソースは次のようになります。
App.containerObject.pushObject(App.Item.create({text1:'Text 1', text2:'Text 2', text3:'Text 3', text4:'Text 4'}));
App.containerObject.pushObject(App.Item.create({text1:'Text 1', text2:'Text 2', text3:'Text 3', text4:'Text 4'}));
App.containerObject.pushObject(App.Item.create({text1:'Text 1', text2:'Text 2', text3:'Text 3', text4:'Text 4'}));
ご覧のとおり、各アイテムのテキスト値は同じで、App.currentItemIndex を任意の値 0、1、または 2に変更すると、バインディングは何かが変更されたという通知をトリガーしません。、もちろんプロパティは変更されていませんが、オブジェクトは新しいものです。
質問は次のとおりです。 この通知を強制的にトリガーして、それに応じてビューを更新するにはどうすればよいですか?