1

beforerender イベントでラベルのテキストを読み込もうとしています。だから私はbeforenderイベントを添付しました...以下のように

{
    xtype: 'label',
    text: 'VOID',
    listeners: {
        beforerender: {
        fn: me.onLabelBeforeRender,
        scope: me
    }
},

Ext.Ajax.request({
    url: '/who',
    method: 'GET',
    params: {
        id: 1
    },
    success: function(response){
        var text = Ext.decode(response.responseText);
        alert(text);
        // process server response here
    }
});

そして今、ラベルを VOID から /who の応答値に変更したいと思いますが、適切な方法でそのラベルにアクセスする方法がわかりません。もちろん、getcmp を使用して ID を追加することはできますが、それは非常に不器用に思えます。

4

2 に答える 2

1

実際、パフォーマンスに関する限り、id +Ext.getCmp()が最も効率的なオプションです。詳細については、この質問を参照してください。

かなり健全なコール スタックが得られるリスナーを追加するよりも確実に高速になります。

于 2012-09-03T12:33:54.013 に答える
0

このようにラベルを定義します

{
    xtype: 'label',
    text: 'VOID',
    itemId:'someLabel',
    listeners: {
        beforerender: {
        fn: me.onLabelBeforeRender,
        scope: me
    }
}

me現在、ラベルの祖先であると想定しているスコープを保持しているため、関数内でキーワードでonLabelBeforeRenderアクセスできます。その関数では、ラベルを次のように取得しますmethis

var label = this.down('label[itemId="someLabel"]');
label.setText('WHATEVER YOU WANT HERE');
于 2012-09-03T12:08:39.897 に答える