私はビルド中にmvcアーキテクチャメソッドを使用しています。ExtJS4 MVCで他のビューで拡張コンポーネントを再利用する
ファイル構造:
app/
--->app.js
--->view/
--------->viewport.js
--------->Toolbar.js
--------->SaveMenu.js
viewport.js:
Ext.define('MyApp.view.Viewport', {
extend: 'Ext.container.Viewport',
layout: 'fit',
requires: [
'MyApp.view.Toolbar',
'MyApp.view.SaveMenu',
],
initComponent: function() {
this.items = {
dockedItems: [
{
dock : 'top',
xtype : 'myapptoolbar',
height : 40,
}
]
...
// more config, but this works now.
Toolbar.js
私は再利用したいと次のことが可能であるかどうかを知りたいメニューを持っていますExt.define ('Myapp.view.Toolbar', {
extend : 'Ext.toolbar.Toolbar',
alias : 'widget.myapptoolbar',
items : [
{
text : 'Save',
// The following doesn't work, is there another way to achieve this?
menu : 'myappsavemenu',
}
]
});
SaveMenu.js
Ext.define ('Myapp.view.SaveMenu', {
extend : 'Ext.menu.Menu',
alias : 'widget.myappsavemenu',
items : [
{
text : 'Save as...',
}
]
});
他のビューで以前に定義されたビューコンポーネントを再利用することはできますか?もしそうなら、どうすればよいでしょうか?
Uncaught TypeError: Cannot set property 'ownerCt' of undefined
ありがとうございます:未知の型エラー:未定義のメソッド '部分文字列'を呼び出すことができません Ext.ClassManager.parseNamespace –
うわー、私はあなたのアイテムを静的に設定しているのを見ませんでした。代わりに 'menu:{xtype: 'myappsavemenu'}'を試してみてください。 –
ダビデのおかげで、両方の方法が実際に動作します。私は最初の方法を試してみるときに捉えていないタイプミスがありました。あなたはこれをあなたがどこから学んだかの方向に私を指摘できますか、またはあなたは簡潔な説明をしていますか? –