0

在视图的初始化方法中将按钮添加到导航栏后,我试图更改按钮上的文本。然而,当使用 Chrome 进行调试时,它会停止并在 Connection.js 上显示以下消息:未捕获的类型错误:无法读取未定义的属性 'readyState'。我认为这应该很简单,有点困惑!这是我的代码:

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 回答