我一直试图弄清楚为什么我无法使用setData方法更新Sencha Touch选取器数据字段(请参阅帖子末尾的代码)。我创建了一个名为slotsdata的数组,我在其中定义了数据。数据看起来完全像这样:
{text: '50 KB/s', value: 50},
{text: '100 KB/s', value: 100},
{text: '200 KB/s', value: 200},
{text: '300 KB/s', value: 300}
当我尝试使用setData()设置数据时 picker.setData(slotsdata); 没有显示错误,但选择器不显示任何数据。
当我尝试更新这样的数据时:
slots: [
这是行不通的。控制台中没有错误。选择器是空的。
{
name : 'picker_slot1',
title: 'slot1',
data: [slotsdata]
}
]
我可以更新的唯一方法是使用以下语法:
slots: [
{
name : 'picker_slot1',
title: 'slot1',
data: slotsdata
}
]
我希望能够使用方法#1更新我的选择器数据。任何人都可以帮我解决这个问题。任何帮助将不胜感激。
这是代码:
myFunction: function(){
var data = this.getData();
var slotsdata = [];
var pickerData = data.dosage.split(',');
for( var i = 0; i < pickerData.length; i++ ){
slotsdata.push({text: pickerData[i], value: pickerData[i]})
}
var picker = Ext.create('Ext.Picker', {
slots: [
{
name : 'picker_slot1',
title: 'slot1',
data: slotsdata
}
]
});
//this does not work
//picker.setData(slotsdata);
}
答案 0 :(得分:2)
您可以使用setSlots()
选择器类方法,如:
picker.setSlots({
name: 'limit_speed',
title: 'Speed',
data: [
{ text: '50 KB/s', value: 50 },
{ text: '100 KB/s', value: 100 }
]
});