4

ExtJS の新しいリリースにより、Chrome が不安定になる可能性があります (それとも私のコードですか?)。私の状況を説明させてください。

ExtJS 4.0 の新しい MVC アーキテクチャに取り組んでいます。アプリケーション メニューまたはナビゲーションを表示するツリー パネルがあります。アーキテクチャに従って、ツリー パネルをコントローラ、ビュー、および別のストアに分割しようとしました。

これが私の見解です:

 Ext.define('CRM.view.menu.View', {
    alias: 'widget.menutree',
    extend: 'Ext.tree.Panel',

    initComponent: function() {

        console.log('initComponent of View...');

        Ext.apply(this, {
            title: 'Simple Tree',                       
            width: 200,             
            store: 'MainMenu',
            rootVisible: false
        });

        this.callParent(arguments);
    }
});

私の木の店:

 Ext.define('CRM.store.MainMenu', {
    extend: 'Ext.data.TreeStore', 

    constructor: function() {

        console.log('Constructor of MainMenu TreeStore');

        config = Ext.apply(this,{
            proxy: {
                type: 'ajax',
                url: 'data/menu.json'
            },root: {
                text: 'Menu',
                id: 'src',
                expanded: true
            }
        });

        this.callParent(arguments);

    }
}); 

また、コントローラーでは、店舗情報も提供しています。これが私のコントローラー設定の一部です:

Ext.define('CRM.controller.MainMenu',{
    extend: 'Ext.app.Controller',
    stores: ['MainMenu'],   
    refs: [
        {ref:'menu',selector: 'menutree'},
        {ref:'cp',selector: 'centerpane'}
    ],
        .
        .
        .

最初の実行時に、次のエラーが発生します。

オブジェクト MainMenu にはメソッド「getRootNode」がありません

しかし今、私はもっと奇妙なエラーを受け取ります.chromeクロムはアプリを表示できません がツリーストアのコンストラクターで実行を停止することに注意してください.

同時に、firefox では: Firefox の実行速度が向上 Firefox はよりよく実行されますが、レンダリングされるアプリケーションはありません!

いくつかの試行錯誤の後..アプリケーションを実行する方法を見つけました..それは、ストアの使用を避け、以下に示すようにストア情報を直接提供することです。

 Ext.define('CRM.view.menu.View', {
    alias: 'widget.menutree',
    extend: 'Ext.tree.Panel',

    initComponent: function() {

        console.log('initComponent of View...');

        Ext.apply(this, {
            title: 'Simple Tree',                       
            width: 200,             
            store: {
                proxy: {
                    type: 'ajax',
                    url: 'data/menu.json'
                },root: {
                    text: 'Menu',
                    id: 'src',
                    expanded: true
                }
            },
            rootVisible: false
        });

        this.callParent(arguments);
    }
});

これで、アプリケーションはまったく問題なく実行されます!

MVC アーキテクチャを使用してツリー パネルを作成しようとした人はいますか? これを修正する方法がわかりません!

4

1 に答える 1