ExtJS 5.1:使用 MVVM 存储设置默认 ComboBox 值
ExtJS 5.1: Setting default ComboBox value using MVVM store
在我的 ViewModel 中,我为绑定到视图中的 ComboBox 创建了一个内联数据存储。我遇到的问题是根据商店中的一个值设置 ComboBox 的默认值...我可能正在理解这里的绑定,所以我想听听任何反馈。
OrderDetailsStatus 模型:
Ext.define('UserUI.model.OrderDetailsStatus', {
extend: 'Ext.data.Model',
alias: 'model.OrderDetailsStatus',
fields: [{
type: 'int',
name: 'statusId'
},
{
type: 'string',
name: 'status'
}]
});
视图模型:
stores: {
/* TODO: This could eventually become an AJAX call, but for right now,
* it's an inline data store... the statusId's are currently unused */
orderDetailsStatusStore: {
model: 'UserUI.model.OrderDetailsStatus',
proxy: {
type: 'memory'
},
data: [
{ status: 'All', statusId: 1 },
{ status: 'Correct', statusId: 2 },
{ status: 'Incorrect', statusId: 3 }
]
}
}
在视图中:
{
xtype: 'combo',
fieldLabel: 'Status',
bind: {
store: '{orderDetailsStatusStore}'
},
valueField: 'status',
displayField: 'status',
queryMode: 'local',
value: 'All',
listeners: {
select: 'onSelectComboBoxStatus'
}
}
使用值:'All' 给我关于模型不存在的错误:
TypeError: Model is not a constructor: ext-all...ebug.js (line 122343, col 33)
record = new Model(dataObj);
我假设这是因为绑定的商店还没有完全加载?如果我调试代码,在那一行,模型是未定义的,并且商店没有任何数据。任何帮助将不胜感激。
Fiddle 在 5.1.0
中修复了更新
<iframe src="https://fiddle.sencha.com/fiddle/m3g"></iframe>
我创建了一个简单的 fiddle 来复制你的 -
https://fiddle.sencha.com/#fiddle/m3g
在我的 ViewModel 中,我为绑定到视图中的 ComboBox 创建了一个内联数据存储。我遇到的问题是根据商店中的一个值设置 ComboBox 的默认值...我可能正在理解这里的绑定,所以我想听听任何反馈。
OrderDetailsStatus 模型:
Ext.define('UserUI.model.OrderDetailsStatus', {
extend: 'Ext.data.Model',
alias: 'model.OrderDetailsStatus',
fields: [{
type: 'int',
name: 'statusId'
},
{
type: 'string',
name: 'status'
}]
});
视图模型:
stores: {
/* TODO: This could eventually become an AJAX call, but for right now,
* it's an inline data store... the statusId's are currently unused */
orderDetailsStatusStore: {
model: 'UserUI.model.OrderDetailsStatus',
proxy: {
type: 'memory'
},
data: [
{ status: 'All', statusId: 1 },
{ status: 'Correct', statusId: 2 },
{ status: 'Incorrect', statusId: 3 }
]
}
}
在视图中:
{
xtype: 'combo',
fieldLabel: 'Status',
bind: {
store: '{orderDetailsStatusStore}'
},
valueField: 'status',
displayField: 'status',
queryMode: 'local',
value: 'All',
listeners: {
select: 'onSelectComboBoxStatus'
}
}
使用值:'All' 给我关于模型不存在的错误:
TypeError: Model is not a constructor: ext-all...ebug.js (line 122343, col 33)
record = new Model(dataObj);
我假设这是因为绑定的商店还没有完全加载?如果我调试代码,在那一行,模型是未定义的,并且商店没有任何数据。任何帮助将不胜感激。
Fiddle 在 5.1.0
中修复了更新<iframe src="https://fiddle.sencha.com/fiddle/m3g"></iframe>
我创建了一个简单的 fiddle 来复制你的 - https://fiddle.sencha.com/#fiddle/m3g