我希望关闭按钮是可重用的,所以我创建了自己的类,这样我就可以将它附加到需要它的视图上。我只想能够将附加到视图的视图传递给控制器以关闭该视图。它应该相当简单,我怀疑这是多少人这样做,但我无法让它正常工作。我让它关闭视图但得到错误 Uncaught TypeError: Cannot read property 'dom' of null 我理解这通常意味着视图没有被破坏,但我认为这告诉它破坏视图:
Ext.Viewport.remove(curView, true);
这是我认为相关的代码控制器:
closeView: function(btn, e,opts){
var curView = btn.getParent().getParent();
console.log('From btn: ' + curView + ',' + opts);
Ext.Viewport.remove(curView, true);}
看法:
Ext.define('SenchaFirstApp.view.DetailView',{
extend: 'Ext.tab.Panel',
requires: ['Ext.Toolbar', 'Ext.tab.Panel', 'Ext.form.FieldSet', 'Ext.field.Select'],
model: ['SenchaFirstApp.model.Details', 'SenchaFirstApp.model.SiteInfo'],
alias: 'widget.detailview',
// xtype: 'tabpanel',
config:
{
scrollable: true,
width: 1500,
height: 800,
// fullscreen: true,
layout: {type: 'card', animation:{type: 'flip'}},
centered: true,
border: 10,
tabBar: {
docked: 'top',
},
formParams: {
},
items:
[
{
//Tab bar
xtype: 'tbar',
title: 'Details View',
items: [
{
xtype: 'closebtn',
id: 'detailsBtn',
sourceForm: this
}]
},
{
title: 'Equipment Monitor', //first tab
xtype: 'monitor',
},
{
title: 'Site Information', //second tab
xtype: 'siteinfo',
}
]
} //End Config
我试着用
Ext.Viewport.remove(Ext.Viewport.getActiveItem, true)
但这也没有用。我怀疑这可能与我创建该视图的方式有关。我是 Sencha 的新手,所以我可能做错了很多事情,所以我很感激帮助。
我忘了提一下,关闭选项卡面板后,如果不刷新就无法再次打开它,我再次确定这是由于视图没有被破坏