如何使用 angular 或 javascript 重新加载页面一次

新手上路,请多包涵

我需要在路由到新组件后重新加载页面

我已经尝试过 location.reload() 选项,但它会不断重新加载而不停止

ngOninit(){
location.reload()
}

预期结果 :

我只需要重新加载页面一次

实际结果 :

正在重新加载很多次

原文由 Sudhin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 412
2 个回答

我不明白你的用例,但有很多方法可以制作你想要的东西。

我向您推荐一种使用 localStorage 的方法。

检查 localStorage 是否存在。默认情况下密钥不存在,因此您创建它并重新加载页面。

刷新后,您检查相同的密钥(现在存在)。所以你下次不会重新加载页面并删除密钥

ngOnInit() {
  if (!localStorage.getItem('foo')) {
    localStorage.setItem('foo', 'no reload')
    location.reload()
  } else {
    localStorage.removeItem('foo')
  }
}

原文由 R3tep 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该在变量中保存(例如)“IsLoadedBefore”布尔值并在重新加载页面之前检查它。但是一个在页面重新加载后保留数据的变量! (不是本地的)

localStorage 是一个不错的选择:

 function reloadIfNecessary() {
var isLoadedBefore = localstorage.getItem("IsLoadedBefore");
if(isLoadedBefore=="true")
   return;
}
else {
localstorage.setItem("IsLoadedBefore",true);
/*use your reload method*/
})

原文由 mohammad mirshojaee 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题