我创建了一个组合框并附加了一个数组来存储。我想要的是使用可以从列表中选择或也可以键入自定义文本。我搜索了可以通过forceSelection = false来实现,我读了文档,发现forceSelection默认是假的,因为我使用sencha架构师所以我不能显式设置配置。以下是我所做的配置。但是只要我按Tab键或在组合框中输入键入的文本就不再存在。
{
xtype: 'fieldcontainer',
id: 'internetmessager',
autoDestroy: false,
layout: {
align: 'stretch',
type: 'hbox'
},
items: [
{
xtype: 'combobox',
flex: 1,
margin: '0 10 0 0',
name: 'label',
autoSelect: false,
queryMode: 'local',
store: [
'Home',
'Work',
'Personal'
],
typeAhead: true
},
{
xtype: 'textfield',
flex: 2,
name: 'value',
emptyText: 'IM'
}
]
}
谢谢, 阿里阿巴斯
答案 0 :(得分:0)
[编辑] 哦,伙计......对不起...... 在我重读你的问题之后,我意识到你正在使用Sencha Architect [/编辑]
我不确定,如果我理解正确的话...... 我做了什么: 写入组合框或从其商店中选择一个值。 离开(模糊监听器)组合框时,实际值被设置为文本字段。 顺便说一句:itemId会很好用(imho)
items: [
{
xtype: 'fieldcontainer',
id: 'internetmessager',
autoDestroy: false,
layout: {
align: 'stretch',
type: 'hbox'
},
items: [
{
xtype: 'combobox',
flex: 1,
margin: '0 10 0 0',
name: 'label',
autoSelect: false,
queryMode: 'local',
store: [
'Home',
'Work',
'Personal'
],
typeAhead: true,
listeners: {
blur: function (combo) {
Ext.ComponentQuery.query('[name=value]')[0].setValue(combo.getValue());
}
}
},
{
xtype: 'textfield',
flex: 2,
name: 'value',
emptyText: 'IM'
}
]
}
答案 1 :(得分:0)
我认为这是sencha Architect 2.2.2中的一个错误,'forceSelection'的默认值为true,但docs说它是假的。并且架构师不会通过假设'forceSelection'属性为false来为你提供使'forceSelection'伪造b / c的方法。如果我错了,那就是我纠结我的问题。我做的解决方法是使用arhitect配置面板中的“Process Confg”。添加 processLabel 功能
{
xtype: 'fieldcontainer',
id: 'internetmessager',
autoDestroy: false,
layout: {
align: 'stretch',
type: 'hbox'
},
items: [
me.processLabel({
xtype: 'combobox',
flex: 1,
margin: '0 10 0 0',
name: 'label',
store: [
'Home',
'Work',
'Personal'
],
valueField: 'text'
}),
{
xtype: 'textfield',
flex: 2,
name: 'value',
emptyText: 'IM'
}
]
}
在 processLabel 函数中,我明确地使forceSelection属性为false。
processLabel: function(config) {
config.forceSelection = false;
return config;
}