2013-06-12 74 views
0

我剛剛在SenchaCmd中的Sencha Touch 2.2.1中介紹了一個新項目。由於這是我的第一個項目煎茶我有一些非常基本的東西的問題。我試圖訪問Ext.data.StoreManager加載一個預定義的商店,但Ext.data.StoreManager是不確定的,因爲它像接縫裝載機還沒有加載該文件。我曾嘗試加入Ext.require('Ext.data.StoreManager');但沒有運氣來解決它。Sencha Touch,StoreManager未定義

該項目主要是SenchaCmd通過添加模型,商店和對app/views/Main.js進行的某些更改進行初始化。

任何想法?

下面是我的Main.js:

Ext.define('DRL.view.Main', { 
    extend: 'Ext.dataview.List', 
    xtype: 'main', 
    requires: [ 
     'Ext.data.Store' 
    ], 
    config: { 
     items: [{ 
      xtype: 'list', 
      itemTpl: '{teamName}', 
      store: Ext.data.StoreManager.lookup('teams') 
     }], 
     listeners: { 
      itemtap: function(self, index, target, record, e, eOpts) { 

      } 
     } 
    } 
}); 

回答

1

Ext.require加載文件異步,還有requires塊。如果你想StoreManager到Ext.define之前加載,你應該在類定義之前使用Ext.syncRequire

但是,有更好更清潔的方法來達到同樣的最終結果。例如:

應用/存儲/ TeamStore.js:

Ext.define('DRL.store.TeamStore', { 
    extend: 'Ext.data.Store', 
    model: 'DRL.model.Team' // change your model 
    ... 
}); 

應用/存儲/ Main.js

Ext.define('DRL.view.Main', { 
    ... 
    store: 'DRL.store.TeamStore' 
    ... 
}); 

然後,添加DRL.store.TeamStoreDRL.view.MainExt.application即應在app.js.中