ヘルプ!多数のさまざまなビューを含む ExtJS 4.2 MVC アプリケーションがあります。ただし、各ユーザーがアクセスできるのは、セット全体のごく一部です。明らかに、すべてのユーザーのすべてのビューをロードしたくありません! さらに、「許可された」各ビューは、ユーザーがサインインした後にロードする必要があります。
以前 (MVC 以前)、Ext.create() を使用して .js クラス ファイルを動的にロードしていました。しかし、私は MVC 設計パターンを使用しようとしていますが、オンラインで読んだことはすべて、これが ExtJS 4.2 MVC の制限であるように思われることを示唆しています。これは本当ですか?以下は、私がこれまでに試したことです。
まず、カスタム ビューの定義 (基本的なコンテナーの例):
Ext.define('My.custom.TestView', {
extend: 'Ext.container.Container',
alias: 'widget.myCustomTestView',
html: 'Test',
initComponent: function() {
this.callParent(arguments);
}
});
次に、カスタム ビューをロード/インスタンス化しようとしているコントローラーの定義:
Ext.define('My.custom.TestController', {
extend: 'Ext.app.Controller',
// Empty array because I want to
// add views during run-time.
views: [
],
init: function () {
// Attempt #1: This produces an error.
this.getView('My.custom.TestView').create();
// Attempt #2: This returns null.
Ext.widget('myCustomTestView');
// Attempt #3: This appears it might work, but it's ugly!
Ext.create('My.custom.TestView');
this.getView('My.custom.TestView').create();
}
});
#3はエラーを出さない唯一のものですが、私には正しく見えません。提案/コメントはありますか?