私はExtJS 5を学ぼうとしていますが、UIを適切なビューとviewControllerにスライスしようとして、すでに問題に遭遇しました。私のアプリケーションは、ボーダー レイアウトが 3 つのセクションに分割された 1 つのファイルで構成されています。各セクションを個別のモジュールにしたいのですが、それを行う正しい方法がわかりません。コントローラーとビューを追加して、アイテムの xtype をビューの xtype に変更しようとしましたが、空のパネルが表示されました。
境界レイアウトの「南」の部分は、独自のコントローラーに移動して開始しようとしているものです。
これが私のアプリケーションのスリム化されたバージョンです:
Ext.define('RpgInfoSystem.Application', {
extend: 'Ext.app.Application',
name: 'RpgInfoSystem',
launch: function() {
Ext.create('Ext.container.Viewport', {
layout: 'border',
bodyBorder: false,
defaults: {
collapsible: true,
split: true,
bodyPadding: 5
},
// Here is where we require our modules
//requires: ['RpgInfoSystem.Reference.controller.Reference'],
// Here is where we insert our modules into the UI
items: [{
region: 'north',
xtype: 'component',
collapsible: false,
resizeable: false,
floatable: false,
padding: 0,
margin: 0,
height: 25,
minHeight: 25,
maxHeight: 25,
html: '<h1 style="margin: 0; padding: 0;">RPG Information System</h1>'
}, {
xtype: 'tabpanel',
collapsible: false,
region: 'center',
margin: '5 0 0 0',
items: [{
title: 'Initiative Tracker',
html: '<h2>Main Page</h2><p>This is where the main content will go. For players, this will be their character sheets. For the DM, this will be the initiative tracker.</p>'
}, {
title: 'Templates',
html: 'Templates for NPCs and enemies, which can be copied into the initiative tracker.'
}]
}, {
title: 'Utilities',
xtype: 'panel',
region: 'east',
floatable: false,
margin: '5 0 0 0',
width: 300,
minWidth: 100,
//maxWidth: 250,
layout: {
type: 'vbox',
pack: 'start',
align: 'stretch'
},
items: [{
title: 'Campaign Info',
xtype: 'tabpanel',
flex: 1,
margin: '0 0 1 0',
items: [{
title: 'Session',
html: 'A text area to enter notes for the campaign and scroll through other users\'s notes.'
}, {
title: 'Campaign',
html: 'Information about the current campaign, as well as the ability to take and edit notes.'
}
]
}]
}, {
title: 'Reference',
xtype: 'mycustomview', //HERE IS WHERE I AM CUSTOMIZING
region: 'south',
floatable: false,
height: 250,
minHeight: 150,
collapsed: true,
}]
});
}
});
そして私のランチャー:
Ext.application({
name: 'RpgInfoSystem',
extend: 'RpgInfoSystem.Application',
controllers: [
'Reference'
]
});