【问题标题】:How to refresh an angular page with router without window.location.reaload?如何在没有window.location.reload的情况下使用路由器刷新角度页面?
【发布时间】:2018-10-05 01:01:00
【问题描述】:

我有以下方法来重置组件页面中的值。页面“new-edition”将重置组件中的所有值,导航到另一个组件(“my-editions”),然后导航到原始位置“new-edition”。但我想知道是否存在另一种方法来执行此操作, windows.location.reload() 不是一个选项,因为路由配置为重新定位到“父应用程序”。

confirmReset() {
   this.confirmationService.confirm({
     message: 'Do you want to reset?',
     header: 'Reset',
     accept: () => {
        // window.location.reload();
        this.router.navigate(['/parent-app/my-editions']);
        this.router.navigate(['/parent-app/new-edition']);
        this.router.nav
     },
   reject: () => {}
  });
}

【问题讨论】:

  • 需要更多信息。值存储在哪里?我会假设它们作为变量存储在组件类中,在这种情况下,将这些变量的值更改为某个默认值可能正是您想要的。
  • this

标签: javascript angular routing angular-routing angular-router


【解决方案1】:

您不必重新加载整个页面。最好创建一个可以正确清除组件的重置器。

例如,如果您的组件中有一个表单,您可以使用reset 整个表单this.form.reset(); 等。

例如,您可以在您的组件中创建一个reset() 方法(您也可以在您的组件中调用ngOnDestroy(),这将完全重置表单、变量和unsubscribe observables

重新加载整个应用程序是一件相当暴力的事情,使用消息(toastr 或其他任何内容)重置值更适合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2018-03-24
    • 2022-01-05
    • 1970-01-01
    • 2021-01-03
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多