如何使用选择字段的setOptions方法与商店
问题描述:
我可以使用setOptions方法成功地指定一个选择栏的选项如下:如何使用选择字段的setOptions方法与商店
setOptions(
[ {text: 'First Option', value: 'first'},
{text: 'Second Option', value: 'second'},
{text: 'Third Option', value: 'third'}
])
但是,我反而喜欢setOptions同一个工作加载数据存储,而不是像上面那样对文本/值数组进行硬编码。
该商店有一个项目类型在它的'车辆'和加载它的服务器的JSON响应形式为{'vehicle':'mercedes'},{'vehicle''jaguar'}(忽略if我有json的语法错误,是从内存中输入这个内容,最后,我会很好地让value字段与setOptions的文本字段相同。由于任何人谁可以帮我
答
使用此:
{ id: 'theSelect',
name: 'vechicleSelect',
xtype: 'selectfield',
store: storeObejct,
displayField: 'vehicle',
valueField: 'vehicle'
}
在此处读取整个API Sencha Touch selectfield
答
您可以遍历存储并将数据推入数组,然后使用数组作为setOptions的参数。
答
为了增加warmachine的答案... 您认为:
{
xtype: 'selectfield',
id: 'NameId',
label: 'Name',
labelWrap: true,
placeHolder: 'name'
},
控制器或在您的视图初始化函数:
initialize: function(){
var me = this;
me.callParent(arguments);
var sto= Ext.getStore('Persons');
sto.load();
var options = [];
sto.each(function(record){
options.push({
value: record.get('displayname'),
text: record.get('displayname')
});
});
var box = Ext.ComponentQuery.query('#NameId')[0];
box.setOptions(options);
},
嗨llya感谢您的答复。这有效,但我想用setOptions方法或类似的方法来实现 - 这是因为我在selectfield上有一个占位符,没有数值,然后我使用setOptions在上面更新字段。 (你实际上可能还记得你几天前曾帮助过我) –
你是否需要使用商店?如果不是,你可以在'setOptions'方法中传递JSON字符串“{'vehicle':'mercedes'},{'vehicle''jaguar'}”。 – ilija139
如果您必须使用商店,请将其设置为我的答案,然后使用此设置占位符文本: 'Ext.getCmp('theSelect')。el.dom.firstChild.firstChild.placeholder ='占位符值“;' – ilija139