0

私は単純な ExtJS ツリーを持っています。すべてが機能します。API では、タイトルやその他のラベルをオーバーライドして変更できることがわかりました。APIリンクはこちら

Ext.require(['*']);
var path = "";

Ext.onReady(function () {
    Ext.define('My.Tree', {
        extend: 'Ext.tree.Panel',
        id: 'DriveTree',
        title: 'File Manager',
        width: 500,
        height: 650,
        store: storeTree,
        rootVisible: true,
        renderTo: 'tree-div',

        viewConfig: {
            plugins: {
                ptype: 'treeviewdragdrop',
                appendOnly: true
            }
        },

        useArrows: true,

        dockedItems: [{
            xtype: 'toolbar',
            items: [{
                text: 'REFRESH', // MULTI LANGUAGE
                id: 'connectButton'

            },
                {
                    text: 'CHOOSE', // MULTI LANGUAGE
                    handler: function () {
                        Ext.Ajax.request({
                            url: '/test.json',
                            success: function (response, opts) {
                                Ext.MessageBox.alert('text', 'text'); // multi language

                            }
                        });
                    }
                }]
        }]
    });
    var tree = Ext.create('My.Tree', {});
});

別の JS ファイルを作成し、ツリーをオーバーライドしました。

Ext.define('My.Tree', {
    override: 'Ext.tree.Panel',
    title: 'new NAME',

});

しかし、これはうまくいきません。Ext.MessageBox.alertのテキストをオーバーライドする必要があります。それをしてもいいですか?

My.Tree パネルからタイトルを削除すると、機能します。

4

1 に答える 1

1

サブクラスではなく、tree.Panelをオーバーライドしているためです。をオーバーライドするため、titleonMy.Treeが優先されますExt.tree.Panel

その代わり:

Ext.define('MyApp.locale.fr.Tree', {
    override: 'My.Tree',
    title: 'Bonjour'
});
于 2013-10-21T10:57:42.493 に答える