我正在Sencha Touch应用程序中工作,我想推送一个组合框,这是以前从商店中过滤掉的值。
var store = Ext.getStore('Surveys');
var templatesAvailable = [];
store.filterBy(function (record) {
console.log(record.get('templateName'));
record.get('templateName'); --> I get value
templatesAvailable.push(record.get('templateName')); --> into the array
});
下一步是将数组传输到指定的选择器,例如在我的情况下......
this.getTemplateSelector
{
xtype : 'selectfield',
itemId : 'selectSurveysTemplates',
cls : 'filterbar-selectfieldplus',
displayField: 'value', --> here is the secret ;-)
valueField : 'id',
autoCreate : true
},
这种实施的正确方法是什么?我已经测试了不同的选项,但它对我不起作用..
提前谢谢..
答案 0 :(得分:0)
这个怎么样:
selectfield.setOptions(
store.getRange().map(function(record) {
return {
text:record.get("templateName"),
value:record.get("templateName")
};
})
);
这应该做到以下几点:
Selectfield.setOptions
设置Selectfield.options
的值。根据文档,options
采用具有属性text
和value
的对象数组,因此我猜setOptions
采用相同的方式。Store.getRange
为您提供了一系列记录。Array.map
接受一个函数并使用该函数转换输入数组中的每个项目。Voilà,你应该完成。