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