按下浏览器后退按钮后SAPUI5未清除视图

按下浏览器后退按钮后SAPUI5未清除视图,sapui5,Sapui5,我有一个2页的应用程序 第一次进入第二页时,它执行onInit()并运行良好 如果点击浏览器后退按钮并再次进入第二页,则不会触发onRouteMatched(),视图不会被清除,这会导致视图元素重复等问题 我尝试了很多方法: -清除视图模型, -在退出时销毁页面, -将onInit复制到onRouteMatched 但似乎什么都不管用 重新加载修复了这个问题 有什么建议吗?onInit()仅在实例化视图时调用一次。它通常用于在显示视图之前修改视图、绑定事件处理程序和执行其他一次性初始化 .att

我有一个2页的应用程序

第一次进入第二页时,它执行onInit()并运行良好

如果点击浏览器后退按钮并再次进入第二页,则不会触发onRouteMatched(),视图不会被清除,这会导致视图元素重复等问题

我尝试了很多方法: -清除视图模型, -在退出时销毁页面, -将onInit复制到onRouteMatched

但似乎什么都不管用

重新加载修复了这个问题

有什么建议吗?

onInit()
仅在实例化视图时调用一次。它通常用于在显示视图之前修改视图、绑定事件处理程序和执行其他一次性初始化

.attachMatched(this.onRouteMatched,this)
将在重新导航到该视图时匹配路由时触发

例如,您可以在
onInit()
部分中看到:

    this.getRouter()
        .getRoute(<views-route-name-here>)
        .attachMatched(this.onRouteMatched, this);
this.getRouter()
.getRoute()
.attachMatched(this.onRouteMatched,this);
编辑

我看到您在评论部分发布了一些代码: 确保manifest.json中的路由名称为“actionplan”,并且该名称出现在哈希之后。这将确保匹配,并在您的情况下触发“路由匹配”功能


如果这不能解决问题,您可以公开manifest.json。

使用哈希转换器。如果你需要的话,我会提供一些代码。我尝试了捕获back arrow事件并销毁页面的方法,但是当重新进入应用程序时,页面的元素(来自view.xml)不会重新实例化。是的,销毁它不会起作用,因为它只会被销毁。你能说出你的onInit和onRouteMatched方法的代码吗;this.getView().setModel(新JSONModel(this.oViewModelData),“视图”);},_onRouteMatched:function(oEvent){var self=this;window.onhashchange=function(){if(window.innerDocClick){}else{if(window.location.hash===''{location.reload();}}很抱歉格式化