2014-09-22 75 views
0

我使用'list'作为视图中的子组件。我没有使用任何商店来获取数据,而是使用列表的简单“数据”属性来布局我的列表项。Sencha的触摸列表不刷新

我的要求是用同一个视图上的一个按钮点击更新相同的列表。我正在使用列表的setData方法更新数据,但是新项目被追加到列表中,而不是替换旧项目。此外,这份名单表现不佳。旧数据记录的事件监听器(itemtap)似乎完好无损。

这是查看包含使用控制器,视图http://jsfiddle.net/6gwwes0p/

注意列表http://jsfiddle.net/xer1es0w/ 这里:我已经被截断的几行代码为我的代码安全的原因

enter image description here

+0

请添加一些代码,以便我们可以检查问题。 – 2014-09-22 13:43:21

+0

@SujataChanda代码现在包含在问题的末尾。 – Sadi 2014-09-23 06:00:09

回答

1

在你的例子中,你并不是真的在做你认为你在做的事情。

这里是一旦你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看起来是否有数据存储。如果没有,它创建一个。

在第一次运行时,它会添加一个存储,然后将ADDS数据添加到存储。

==>在第二次运行需要调用

list.getStore().removeAll(); 
list.addData(bla); 

,或者尝试

list.getStore().setData(bla);