Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extjs4中的自动销毁行为:false_Javascript_Extjs4_Typeerror_Tabpanel - Fatal编程技术网

Javascript Extjs4中的自动销毁行为:false

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"

autoDestroy:false在ExtJS4中实际上是如何工作的。 我打算关闭选项卡,然后单击按钮重新创建它,请参见此处的代码:

    <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)
将其添加回来。