作成中のMVC Sencha Touchアプリケーションがあり、TabPanel を正しく機能させるのに問題があります。問題はこれです。PosViewport.js をこのようにすると、すべて正常に動作します。
touch.views.PosViewport = new Ext.extend(Ext.TabPanel, {
initComponent: function () {
console.log("inside initComponent() of PosViewport.js");
touch.views.PosViewport.superclass.initComponent.call(this);
},
tabBar: {
dock: 'bottom',
layout: {
pack: 'center'
}
},
layout: 'fit',
scroll: 'vertical',
items: [
{
title: 'Reciepts',
iconCls: 'bookmarks',
html: 'one'
},
{
title: 'POS',
iconCls: 'Favorites',
html: 'two'
}
]
});
ここでは、すべてが素晴らしいです!タブ バーは下部に表示され、ぴったりと収まり、2 つの間を問題なく切り替えることができます。
ただし、これらのパネルを PosViewport.js ファイル内に保持する代わりに、2 つの個別のファイルに移動しましょう。
View1.js:
touch.views.View1 = new Ext.extend(Ext.Panel, {
initComponent: function () {
touch.views.View1.superclass.initComponent.call(this);
},
layout: 'fit',
scroll: 'vertical',
fullscreen : true,
title: 'Reciepts',
iconCls: 'bookmarks',
html: 'panel one'
});
および View2.js:
touch.views.View2 = new Ext.extend(Ext.Panel, {
initComponent: function () {
touch.views.View2.superclass.initComponent.call(this);
},
layout: 'fit',
scroll: 'vertical',
fullscreen : true,
title: '2',
iconCls: 'bookmarks',
html: 'panel two'
});
両方の新しいビューを index.html に追加します。ここで、新しいビューを指すようにPosViewport.js を更新します。
touch.views.PosViewport = new Ext.extend(Ext.TabPanel, {
initComponent: function () {
console.log("inside initComponent() of PosViewport.js");
touch.views.PosViewport.superclass.initComponent.call(this);
},
tabBar: {
dock: 'bottom',
layout: {
pack: 'center'
}
},
layout: 'fit',
scroll: 'vertical',
items: [ touch.views.View1, touch.views.View2]
});
そして、それはすべて地獄に行きます。上部のごく一部しかページに表示されないため、下部タブ バーは表示されません。パネルがまったく表示されず、HTML コンテンツがまったく表示されません。
ここで何が起こっているのですか?なぜこのような振る舞いをしているのか、私にはまったくわかりません。正しい方向へのポインタは大歓迎です、ありがとう!