我刚刚在SenchaCmd中介绍了Sencha Touch 2.2.1中的一个新项目。由于这是我的第一个Sencha项目,我遇到了一些非常基本的问题。我正在尝试访问Ext.data.StoreManager
以加载预定义的商店,但Ext.data.StoreManager
未定义,因为它的接口就像加载器没有加载此文件一样。我试图通过添加Ext.require('Ext.data.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) {
}
}
}
});
答案 0 :(得分:1)
Ext.require
异步加载文件,以及requires
块。如果要在Ext.define之前加载StoreManager,则应在类定义之前使用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.TeamStore
和DRL.view.Main
到你应该在app.js中的Ext.application
。