gpt4 book ai didi

javascript - ExtJS redirectTo 不在历史记录中保存 url

转载 作者:行者123 更新时间:2023-11-30 00:22:05 25 4
gpt4 key购买 nike

假设我有以下代码:

...
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 再次。我尝试将 redirectTo 更改为

history.replaceState(..., host/#someurl:defaultparam);
history.go(0);

但是每次重定向都会重新加载页面。

那么,如何使用ExtJs的redirectTo和替换history中的url呢?

更新:我在 this.redirectTo('someurl:defaultparam', true); 上替换了 history.go(0);。现在我在连续两次或多次重定向到某个 url 时遇到问题

最佳答案

查看 API docsactual code ,它看起来像 redirectTo() 管理 Ext.util.History —— 它只是 window.location.hash 之上的一层。不幸的是,由于后退按钮与 window.location 紧密耦合,因此没有一种干净的方法来完成您的需要。

我过去能够覆盖 Ext.app.router.Router.recognize() -- 它会拦截所有 Ext JS 路由,并可能使您能够在发生很多事情之前更改 URL/哈希。不过,我不完全确定它是否对您的具体情况有帮助。

关于javascript - ExtJS redirectTo 不在历史记录中保存 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com