Javascript Extjs4中的自动销毁行为:false
autoDestroy:false在ExtJS4中实际上是如何工作的。 我打算关闭选项卡,然后单击按钮重新创建它,请参见此处的代码:Javascript Extjs4中的自动销毁行为:false,javascript,extjs4,typeerror,tabpanel,Javascript,Extjs4,Typeerror,Tabpanel,autoDestroy:false在ExtJS4中实际上是如何工作的。 我打算关闭选项卡,然后单击按钮重新创建它,请参见此处的代码: <html> <head> <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" /> <script type="text/javascript" src="../bootstrap.js"
<html>
<head>
<link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
<script type="text/javascript" src="../bootstrap.js"></script>
<script type="text/javascript">Ext.require('Ext.tab.*');
Ext.onReady(function(){
var tabs = Ext.create('Ext.tab.Panel', {
width: 400,
height: 400,
renderTo: document.body,
autoDestroy: false,
items: [{
title: 'Home',
html: 'Home',
itemId: 'home'
}, {
title: 'Tickets',
html: 'Tickets',
itemId: 'tickets',
closable: true,
closeAction: 'hide'
}]
});
Ext.create('Ext.button.Button',{
id: 'buttonId',
text: 'Recreate Tab',
renderTo: Ext.getBody(),
handler: function(){
var tickets = tabs.child('#tickets');
tickets.tab.show();
}
});
});
</script>
</head>
<body>
<div id="tabs1">
<div id="script" class="x-hide-display"></div>
<div id="markup" class="x-hide-display"></div>
</div>
</body>
</html>
Ext.require('Ext.tab.*');
Ext.onReady(函数(){
var tabs=Ext.create('Ext.tab.Panel'{
宽度:400,
身高:400,
renderTo:document.body,
自动销毁:错误,
项目:[{
标题:"家",,
html:'主页',
itemId:'家'
}, {
标题:"门票",,
html:'票',
itemId:'票',
closable:是的,
closeAction:“隐藏”
}]
});
Ext.create('Ext.button.button'{
id:'按钮',
文本:“重新创建选项卡”,
renderTo:Ext.getBody(),
处理程序:函数(){
var tickets=tabs.child(“#tickets”);
tickets.tab.show();
}
});
});
但它给出了未捕获的TypeError:单击按钮时无法读取null的属性“tab”。为什么?关闭后,将从选项卡面板中删除“票证”选项卡。因此,当您使用
tabs.child('#tickets')
查找它时,返回空值。在下一行中,您实际上调用了null.tab
,因此出现了错误。您需要在面板关闭前跟踪它,然后使用选项卡。添加将其带回来。关闭后,将从选项卡面板中删除“票证”选项卡。因此,当您使用tabs.child('#tickets')
查找它时,返回空值。在下一行中,您实际上调用了null.tab
,因此出现了错误。您需要在面板关闭前跟踪它,然后使用选项卡。添加选项卡将其带回来。没有理解“您需要在面板关闭前跟踪它,然后使用选项卡。添加选项卡将其带回来”的含义。autoDestroy的目的不是:false不是销毁tab的实例,而是隐藏它。它不会被销毁,但会从tab面板中删除。您可以在Ext.create
之后立即尝试tabs.child…
,然后将该变量添加到处理程序中的选项卡中,或者只添加tabs.add
您最初创建它时使用的配置。您是否可以详细说明如何“在面板关闭之前跟踪它,然后使用tabs.add将其带回来。”请使用var tab=tabs.child(“#tickets”)
或类似的方法将其分配给变量。然后tabs.add(tab)
将其添加回。未理解“您需要在面板关闭前跟踪面板,然后使用tabs.add将其恢复”的含义。autoDestroy的目的不是:false不是销毁tab的实例,而是隐藏它。它不会被销毁,但会从tab面板中删除。您可以在Ext.create
之后立即尝试tabs.child…
,然后将该变量添加到处理程序中的选项卡中,或者只添加tabs.add
您最初创建它时使用的配置。您是否可以详细说明如何“在面板关闭之前跟踪它,然后使用tabs.add将其带回来。”请使用var tab=tabs.child(“#tickets”)
或类似的方法将其分配给变量。然后tabs.add(tab)
将其添加回来。