Extjs更喜欢你的应用程序是一个单页应用程序,但我仍然希望能够做一些事情,比如刷新我的页面并将我当前的位置保留在应用程序中,并输入一个url直接到达特定点在应用程序中。有解决方案吗?
答案 0 :(得分:2)
是的,我在我的应用程序中也这样做。您可以使用Ext JS历史记录机制来执行此操作。看看this example from Sencha。
您可以像这样收听历史更改事件
Ext.History.on('change', function(token) {
// you navigate-to-target code goes here, e.g. change the viewport content
}
然后,您可以通过将浏览器哈希设置为某个导航目标来启动导航
document.location.hash = yourNavigationToken;
这使您还可以使用浏览器按钮进行深度链接和前进/后退导航。
您需要初始化历史记录:
// The only requirement for this to work is that you must have a hidden field and
// an iframe available in the page with ids corresponding to Ext.History.fieldId
// and Ext.History.iframeId. See history.html for an example.
Ext.History.init();
并在页面中添加iframe和隐藏输入字段,如示例所示:
<form id="history-form" class="x-hide-display">
<input type="hidden" id="x-history-field" />
<iframe id="x-history-frame"></iframe>
</form>