我有一个包含 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时,绑定不会触发某些内容已更改的通知。,因为当然属性没有改变,但对象是一个新的。
所以问题是: 如何强制触发此通知以相应地更新视图?