2

setData メソッドを使用して Sencha Touch ピッカーのデータ フィールド (記事の最後にあるコードを参照) を更新できない理由を突き止めようとしています。データを定義する slotdata という配列を作成しました。データは次のようになります。

{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 に答える