我有两个页面,分别是角色列表和角色细节。有取决于角色的要求,我需要在单击保存按钮后隐藏菜单选项。我可以使用以下代码来实现
windows.location.reload();
重新加载后,我需要导航到其他页面。为此,我正在使用以下代码。
if(this.menuHide == "true"){
window.location.reload();
this.router.navigateByUrl('/', {skipLocationChange: true}).then(()=>
this.router.navigate(['role-list']));
}
也尝试了这些选项
this.router.navigate(['/role-list']));
this.router.navigateByUrl('/role-list');
reload方法下面的代码未执行,这意味着它没有重定向到role-list
页。我正在使用angular 7
版本。
任何人都可以提出任何有关如何导航到其他页面的想法,这将对我表示感谢,在此先感谢您。
答案 0 :(得分:0)
你不应该打电话
window.location.reload();
您在这里要做的是重新加载整个页面并销毁Angular应用程序。绝对不要在单页应用程序(例如使用Angular创建的应用程序)中执行此操作。调用reload之后的任何代码都将永远不会执行,因为您已经破坏了整个JavaScript应用程序,并且从头开始重新加载了整个程序,这是绝对不希望的。
在Angular中,我们基于RxJ的可观察对象使用一种称为响应式编程的现代编程风格。这是一个超出StackOverflow答案范围的概念,但是您的菜单应该对Observable角色做出反应。
答案 1 :(得分:0)
如果只想隐藏菜单,则不需要重新加载整个页面,只需实现隐藏功能并使用它即可。 仅在使用“ router”时才无法在新选项卡中打开,您必须单独创建链接并使用“ window.open()”函数对其进行调用。
this可能会帮助您进行路由
答案 2 :(得分:0)
我已经通过使用以下代码解决了这个问题
if(this.menuHide == "true"){
this.router.navigate(['/role-list']).then(()=>{
window.location.reload();
});
}
工作正常。.谢谢大家的宝贵建议。