Angular 如何通过路由器刷新组件映射

Angular 如何通过路由器刷新组件映射,angular,angular2-routing,Angular,Angular2 Routing,是否可以使用相同的routerLink刷新组件映射?让我们这样说: 我有一些路线: const appRoutes: Routes = [ //other Routes... {path: 'some/:formCode', component: SomeComponent}, //other Routes... ] 用户输入链接/some/dwa21e。应用程序基于dwa21ecode动态加载表单。将显示一个动态表单(代码唯一) 用户可以填写表格。完成表单时,其他操

是否可以使用相同的routerLink刷新组件映射?让我们这样说:

  • 我有一些路线:

    const appRoutes: Routes = [
        //other Routes...
        {path: 'some/:formCode', component: SomeComponent},
        //other Routes...
    ]
    
  • 用户输入链接
    /some/dwa21e
    。应用程序基于
    dwa21e
    code动态加载表单。将显示一个动态表单(代码唯一)

  • 用户可以填写表格。完成表单时,其他操作在表单外部的某个组件中执行

  • 用户正在尝试提交表单。有两种选择:

    • 验证不正确:显示错误消息。SomeComponent保持与提交前相同的状态

    • 验证正确:SomeComponent返回到2中的状态。

  • 提交正确的表单后,我无法重定向到
    /some/dwa21e
    。如果我尝试重定向到当前URL,则不会发生任何事情是否可以将组件刷新到初始状态?也许,还有其他方法吗


    我想强调的是,仅仅清除表格是不够的,因为3的动作。点

    您应该使用组件创建一条空路由。 此组件将重定向到
    ngOnInit()
    上的
    /some/dwa21e
    ; 只需将
    dwa21e
    参数值发送到该空组件,即可重定向到具有值的
    /some


    据我所知,除非刷新整个页面,否则无法刷新组件。

    如果要刷新组件,可以选择订阅路由参数。这将使您能够再次触发
    ngOnInit()
    中的代码

    import { ActivatedRoute } from '@angular/router';
    ...
    currentId: string;
    
    constructor(private _route: ActivatedRoute) {
        this.currentId = _route.snapshot.params['id'];
    }
    
    ngOnInit() {
        this._route.params.subscribe(params => {
            this.currentId = params['id'];
            this.functionToLoad();
        }
    }
    

    请编辑问题,将其限制为特定问题,并提供足够详细的信息,以确定适当的答案。避免同时问多个不同的问题。请参阅“如何寻求帮助”页面以澄清此问题。我不知道问题出了什么问题?我问了一个特定的问题:如何将路由器的组件映射刷新到初始状态。我举了一些例子(分步)来解释这个问题。请详细说明问题所在,以便我能正确地更正问题。我认为,这是一个聪明的解决方法。我会尽量让你知道它是否有效。是的,我忘了写,刷新整个页面不是一个选项。