我用sencha cmd生成了一个应用程序(它通过bootstrap文件运行),它的结构如下:
app
---\model\
----------ComboBox.js
---\store\
----------ComboBox.js
---\view\
----------My.js
----------MyController.js
----------MyModel.js
My.js
是一个面板,我尝试将xtype: 'combobox'
与store: 'MyApp.store.ComboBox'
一起使用。但它抛出:Uncaught TypeError: Cannot read property 'isEmptyStore' of undefined
。我的商店/ ComboBox.js :
Ext.define('MyApp.store.ComboBox', {
extend: 'Ext.data.Store',
alias: 'store.combobox',
fields: [
'label', 'code'
],
model: 'combobox',
data: [
{
"label": "RRS",
"code": "643"
},
{
"label": "USA",
"code": "840"
}
]
});
我的模型/ ComboBox.js
Ext.define('MyApp.model.ComboBox', {
extend: 'Ext.data.Model',
alias: 'model.combobox',
fields: ['label', 'code']
});
所以它出于某种原因无法从我的视图中找到(load()
?)我的商店类。我尝试在组合框的商店配置字段中使用store.combobox
,combobox
- 它不起作用。我不知道为什么,因为我正在遵循"推荐"目录结构。如果我将MyApp.store.ComboBox
放在全局商店中需要阻止Application.js
- 它只是尝试加载localhost/combobox.js
(当然是NOT_FOUND
)我认为这不是所有。
更新#1 主要的问题是,我有这样的观点:
...
items: [
{
xtype: 'combobox',
store: 'MyApp.store.ComboBox',
valueField: 'code',
displayField: 'label',
fieldLabel: 'Type'
},
...
它不会实例化商店对象!所以错误:
Uncaught TypeError: Cannot read property 'isEmptyStore' of undefined
有什么想法吗? 更新#2 最后:
...
items: [
{
xtype: 'combobox',
store: Ext.create('MyApp.store.ComboBox'),
valueField: 'code',
displayField: 'label',
fieldLabel: 'Type'
},
...
完美地工作,为什么我不能在商店配置字段中使用类名(根据文档)?