使用ExtJS为选项卡添加书签?
需要一些关于ExtJS中标签书签的帮助 我有一个包含多个选项卡的选项卡面板,单击各个选项卡可以更改URL。我目前正在使用哈希。但是,当我使用应用程序的“id+分隔符+其他id”URL直接导航到页面时,我无法恢复应用程序 以下是示例代码:使用ExtJS为选项卡添加书签?,extjs,extjs4.1,tabpanel,Extjs,Extjs4.1,Tabpanel,需要一些关于ExtJS中标签书签的帮助 我有一个包含多个选项卡的选项卡面板,单击各个选项卡可以更改URL。我目前正在使用哈希。但是,当我使用应用程序的“id+分隔符+其他id”URL直接导航到页面时,我无法恢复应用程序 以下是示例代码: launch : function() { Ext.state.Manager.setProvider(new Ext.state.CookieProvider( { expires : new D
launch : function() {
Ext.state.Manager.setProvider(new Ext.state.CookieProvider(
{
expires : new Date(new Date().getTime()
+ (1000 * 60 * 60 * 24 * 7))
}));
var tabPanel=new Ext.TabPanel({
width:1000,
title:'TabPanel',
height:700,
id:'main-tab',
activeTab:0,
layout:'fit',
region:'north',
stateful:true,
stateId:'tp1',
stateEvents:['tabchange'],
getState:function(){
return {
activeTab:this.items.findIndex('id',this.getActiveTab().id)
};
},
applyState:function(s){
this.setActiveTab(s.activeTab);
},
items:
[
//included tabID and title
],
listeners:{
tabchange:function(tabPanel,currTab){
window.location.hash='#myTabs/'+currTab.id; //config.position;
console.log(window.location);
}
}
});
var viewport=new Ext.Viewport({
id:'main-viewport',
layout : 'fit',
title:'Main',
deferredRender:true,
items : [ tabPanel ],
width:200,
region:'west'
});
viewport.doLayout();
通过使用expire
config(使用Ext.state.Manager
和Ext.state.CookieProvider
)保存页面的当前状态,我目前已经解决了这个问题
但是,我使用的url应该在任何时间长度内都有效
另外,如果我上次访问的URL是…/apps/Bookmarking/services.html#myTabs/5
如果我将我的URL改回…/apps/Bookmarking/services.html,它应该会回到我的默认(在我的例子中是第一个)选项卡。相反,它导航回…/apps/Bookmarking/services.html#myTabs/5
我怎样才能纠正这一点
提前谢谢
PS:请检查这个链接,查看我对这个问题所做的全部更改
我认为你的观点是正确的。不幸的是,我认为你刚刚发现了一个漏洞 而不是总是在渲染后设置活动选项卡
function onAfterRender() {
...
var activeTab1 = Ext.getCmp('main-tabs').getActiveTab(),
activeTab2 = activeTab1.getActiveTab();
onTabChange(activeTab1, activeTab2);
}
如果没有令牌,可能尝试设置它
Ext.util.History.on('ready', function(history){
if ( !history.getToken() ) {
var activeTab1 = Ext.getCmp('main-tabs').getActiveTab(),
activeTab2 = activeTab1.getActiveTab();
onTabChange(activeTab1, activeTab2);
}
}, this);
我尝试使用
Ext.util.History
功能实现这个概念,但是,我无法为选项卡添加书签。示例:应跳转到选项卡4,但它会返回到选项卡1:子选项卡1。