2012-07-10 51 views
1

我一直在试图找出为什么我不能更新煎茶触摸选取器数据字段(见文章最后的代码)使用SetData方法。我创建了一个名为slotsdata的数组,在其中定义了我的数据。数据看起来就像这样:煎茶触摸Ext.picker使用setData工作不正常

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

}

回答

1

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

picker.setSlots({ 
    name: 'limit_speed', 
    title: 'Speed', 
    data: [ 
     { text: '50 KB/s', value: 50 }, 
     { text: '100 KB/s', value: 100 } 
    ] 
});