将按钮文本添加到sencha touch 2中的导航栏后设置

时间:2013-01-11 01:08:07

标签: button view sencha-touch-2 navigationbar

我试图在视图的initialize方法中将按钮添加到导航栏后更改按钮上的文本。然而,在使用Chrome进行调试时,它会停止并在Connection.js上显示以下消息:Uncaught TypeError:无法读取未定义的属性“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';
    }
});

2 个答案:

答案 0 :(得分: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";

答案 1 :(得分:0)

我认为这就是你想要的......

config: {
        listeners: {
                   initialize: function(){
                   this.down('button').setText('Whatever You Want')
        }
}}