2

我一直试图弄清楚为什么我无法使用 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} 
  1. 当我尝试使用 setData() picker.setData(slotsdata); 设置数据时 不显示错误,但选取器不显示任何数据。

  2. 当我尝试像这样更新数据时: 它不起作用。控制台中没有错误。选择器是空的。
    slots: [
    {
    name : 'picker_slot1',
    title: 'slot1',
    data: [slotsdata]
    }
    ]

  3. 我可以更新的唯一方法是使用以下语法:

    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);  

}

4

1 回答 1

2

您可以使用setSlots()选择器类的方法,例如:

picker.setSlots({
    name: 'limit_speed',
    title: 'Speed',
    data: [
        { text: '50 KB/s', value: 50 },
        { text: '100 KB/s', value: 100 }
    ]
}); 
于 2012-08-20T14:02:58.030 回答