我正在使用' list'作为视图中的子组件。我没有使用任何商店来获取数据,而是使用简单的数据'列表的属性来布局我的列表项。
我的要求是通过在同一视图上点击按钮来更新相同的列表。我正在使用列表的setData
方法更新数据,但新项目将附加到列表中,而不是替换旧项目。该列表也表现不佳。旧数据记录的事件侦听器(itemtap
)似乎完好无损。
这是包含列表http://jsfiddle.net/xer1es0w/的视图 以下是使用该视图的控制器http://jsfiddle.net/6gwwes0p/
注意:出于代码安全性的原因,我已经截断了一些代码行
答案 0 :(得分:2)
在你的例子中,你并没有真正按照自己的想法行事。
以下是setData(bla)后发生的事情的代码。
function(data) {
var store = this.getStore();
if (!store) {
this.setStore(Ext.create('Ext.data.Store', {
data: data,
autoDestroy: true
}));
} else {
store.add(data);
}
}
Sencha查看是否有数据存储。如果没有,它会创建一个。
首次运行时,它会添加一个商店,然后将数据添加到商店。
==>在第二轮你需要打电话
list.getStore().removeAll();
list.addData(bla);
或尝试
list.getStore().setData(bla);