0

ビューの初期化メソッドでナビゲーションバーに追加された後、ボタンのテキストを変更しようとしています。ただし、Chrome でデバッグすると停止し、Connection.js で次のメッセージが表示されます: Uncaught TypeError: Cannot read property 'readyState' of undefined. 私はこれが単純であるべきだと思っていましたが、少し混乱しています! これが私のコードです:

Ext.define('EventsTest.view.NavTest', {
    extend: 'Ext.navigation.View',

    config: {
        navigationBar: {
            items: [
                {
                    xtype: 'button',
                    text: 'Help',
                    id: 'favoritesHelp',
                    translate: true,
                    translationKey: 'navigationbar.helpbutton',
                    align: 'right'
                }
            ]
        },
        items: [
            {
                xtype: 'container',
                items: [
                    {
                        xtype: 'panel',
                        html: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vehicula tincidunt purus, a dignissim dui rutrum ut. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam pellentesque quam non orci porta sodales. Nulla laoreet varius libero, ac eleifend velit eleifend et. Proin a odio orci, sed bibendum libero. Maecenas eget nisl nec sapien sollicitudin mollis. Phasellus vel est eget risus ornare facilisis ac sed dui. Aliquam non feugiat sapien. In suscipit libero nec lorem lobortis molestie.'
                    },
                    {
                        xtype: 'button',
                        id: 'nextPage',
                        text: 'Next Page'
                    }
                ]

            }

        ]
    },

    initialize: function() {
        this.callParent();
        this.setDefaultBackButtonText('reverse');
        var helpBtn = this.getNavigationBar().query('#favoritesHelp');
        helpBtn.text = 'Yello';
    }
});
4

2 に答える 2

0

クエリが間違っているためです。この2行を置き換えてみてください:

var helpBtn = this.getNavigationBar().query('#favoritesHelp');
helpBtn.text = 'Yello';

これとともに:

var helpBtn = Ext.getCmp('favoritesHelp');
helpBtn.setText("Yellow");

それが役に立てば幸い :)


編集:

クエリをそのように維持することは問題ありませんが、クエリは単一の要素ではなく要素の配列を取得することを覚えておく必要があります。

.textまた、ボタンのテキストは変更されないため、を使用してボタン内のテキストを変更することはできませんinnerHTML。これを使用してみてください:

var helpBtn = this.getNavigationBar().query('#favoritesHelp');
helpBtn[0].textElement.dom.innerHTML = "Yellow";
于 2013-01-11T09:30:15.900 に答える
0

これはあなたが望むものだと思います....

config: {
        listeners: {
                   initialize: function(){
                   this.down('button').setText('Whatever You Want')
        }
}}
于 2013-01-11T11:55:47.973 に答える