有没有办法在不创建 js 模型(ExtJS 4.1)的情况下将商店绑定到 ExtJS ComboBox?
要填充用户组合框,我总是需要先设置模型?我想为每个组合框跳过以下代码:
Ext.define('User',{extend:'Ext.data.Model',idProperty:'Id',fields:['Id','Name']});
你是对的,尼尔!
我已经找到了如何使用它:
var myStore = Ext.create('Ext.data.Store',{
fields:['Id','Name'],
data:[
{Id:0,Name:'Yes'},
{Id:1,Name:'No'},
{Id:2,Name:'Maybe'}
]
});
var pnl = Ext.create('Ext.panel.Panel', {
xtype: 'panel',
title: 'My Panel',
items: [{
id:'cboField1'
xtype:'combobox',
fieldLabel:'My Field',
displayField:'Name',
valueField:'Id',
queryMode:'local',
store: myStore
}]
});
我发现创建具有两个字段 id、name 的简单模型很有用,然后在预定义值列表的所有静态存储(我用于组合框)上使用此模型。
如果您使用 Architect,您可以在 ComboBox 的 store 属性中指定一个数组。如果您只想要一个静态的“标题”组合框,则没有必要创建额外的商店和模型。
xtype:'combo',
fieldLabel:'Title',
name:'division',
queryMode:'local',
store:['Mr','Mrs','Ms'],
displayField:'title',
autoSelect:true,
forceSelection:true
ps 为了将存储属性更改为 Architect 中的本地数组,您需要选择存储文本左侧的小图标并将其更改为数组而不是存储。
在 Extjs 中的任何情况下,您都不需要在商店中设置模型。设置商店的字段属性。
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-cfg-fields
此外,请考虑本地数据的 store 的 data 属性。
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-property-data