2014-09-22 105 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);