2012-04-23 16 views
0

我試圖弄清楚什麼時候可以在我的應用程序中使用存儲。 我從文檔中發現,如果我想顯示來自我的商店的信息,我應該聽我商店的「刷新」事件,以便在它發生更改時(以及第一次加載時)得到通知。Sencha touch 2.0:存儲加載,第一次可用

但是,使用下面的例子:

Ext.define('MyApp.store.Config', { 
extend: 'Ext.data.Store', 
config: { 
    autoLoad: true, 
    autoSync: true, 
    model: 'MyApp.model.Config',   
    listeners: { 
     refresh: function() { 
      console.log(Ext.StoreManager.get('Config').getAt(0)) 
     } 
    } 
} }); 

了「的console.log」被啓動時叫了兩次,它失敗的第一次(好像是商店還沒有加載)。我的模型使用代理(輸入ajax和json閱讀器)。

有人能告訴我應該如何着手避免這個錯誤嗎? 謝謝!

+0

有沒有什麼不能使用[負載]的理由(http://docs.sencha.com/touch/2-0/#!/api/ Ext.data.Store-event-load)事件? – rdougan 2012-04-23 23:37:39

+0

@rdougan當我使用負載時發生同樣的問題。我正在使用刷新,因爲在文檔中,他們提到不應該使用load來進行UI刷新...... – borck 2012-04-24 07:55:56

+0

更新UI時應該使用'refresh',因爲在添加/更新單個記錄時它也會被調用/刪除。但看起來你想知道商店第一次加載,所以使用'load'更有意義。 – rdougan 2012-04-24 18:18:44

回答

0

我找到了原因......

我宣佈「專賣店:[」配置「]」無論是在我的app.js並在我的控制器的性能。

挺難發現,但我的錯......