在 Ext jS中为标签添加书签需要一些帮助。
我有一个包含多个选项卡的选项卡面板,单击各个选项卡会更改 URL。我目前正在使用哈希。但是,当我使用它的“ id + delimiter + other id's ” URL 直接导航到页面时,我无法恢复应用程序。
这是示例代码:
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
我已经通过使用配置(使用Ext.state.Manager
and )保存页面的当前状态来解决当前的问题Ext.state.CookieProvider
。
但是,我使用的 url 应该在任何时间长度内都有效。
此外,如果我上次访问的 URL 是.../apps/Bookmarking/services.html#myTabs/5 并且我将我的 URL 更改回.../apps/Bookmarking/services.html,它应该回到我的默认值(在我的情况下是第一个)选项卡。相反,它导航回.../apps/Bookmarking/services.html#myTabs/5。
我该如何纠正?
提前致谢!
PS:请查看此链接以了解我针对此问题所做的全部更改 http://www.sencha.com/forum/showthread.php?154174-Bookmarking-and-History-in-extjs