【发布时间】:2012-10-12 15:44:37
【问题描述】:
我有一个包含 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 时,绑定不会触发发生更改的通知。,因为属性当然没有改变,但对象是新的。
所以问题是: 如何强制触发此通知以相应地更新视图?
【问题讨论】:
标签: javascript ember.js