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 はよりよく実行されますが、レンダリングされるアプリケーションはありません!
いくつかの試行錯誤の後..アプリケーションを実行する方法を見つけました..それは、ストアの使用を避け、以下に示すようにストア情報を直接提供することです。
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 アーキテクチャを使用してツリー パネルを作成しようとした人はいますか? これを修正する方法がわかりません!