Javascript ExtJS重定向到历史记录中不保存url
假设我有以下代码:Javascript ExtJS重定向到历史记录中不保存url,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,假设我有以下代码: ... routes: { 'someurl:{param}': { action: 'action', before: 'beforeaction' } }, ... beforeaction: function(param, action) { if (!param) { action.stop(); this.redirecTo('someurl:defaultparam');
...
routes: {
'someurl:{param}': {
action: 'action',
before: 'beforeaction'
}
},
...
beforeaction: function(param, action) {
if (!param) {
action.stop();
this.redirecTo('someurl:defaultparam');
}
action.resume();
}
...
所以,当我打开host/someurl
时,应用程序将我重定向到host/someurl:defaultparam
。这部分很好用。
但我不能使用“后退”浏览器按钮返回到host/someurl
之前的url,因为当我返回到host/someurl时,应用程序会再次将我重定向到host/someurl:defaultparam
。我尝试将重定向到
更改为
history.replaceState(..., host/#someurl:defaultparam);
history.go(0);
但每次重定向都会重新加载页面
那么,如何使用ExtJs重定向到并替换历史记录中的url呢
更新:我替换了history.go(0)
onthis.redirectTo('someurl:defaultparam',true)代码>。现在,当连续两次或更多次重定向到某个url时,我遇到了一个问题,查看和,它看起来像是redirectTo()
管理Ext.util.History
——它只是window.location.hash
上的一层。不幸的是,由于后退按钮与window.location
紧密耦合,因此没有一种干净的方法来完成您所需要的
在过去,我已经能够覆盖——它截取所有ExtJS路由,并可能使您能够在发生很多事情之前更改URL/哈希。不过,我不完全确定这是否有助于您的具体案例。谢谢!我错过了,那个方法有第二个参数(强制)。我刚刚替换了历史记录。请转到(0)。重定向到(url,true)。