首页 文章

不同路径中的角度重用组件

提问于
浏览
1

我有以下路由,id是可选参数,因此用户可以加载信息,或者如果没有提供id,他们可以添加信息 . 我希望能够重用该组件,以便页面不必重新加载(在ngOnInit中的api调用),但是因为它们是两个单独的路径,角度总是创建一个全新的组件并且调用ngOnInit .

我尝试过使用儿童,但仍然遇到同样的问题

(这是与角4路由器)

const routes: Routes = [
  {
    path: 'stuff/info',
    component: InfoComponent,
  },
  {
    path: 'stuff/info/:id',
    component: InfoComponent,
  },
]

1 回答

  • 1

    Angular有必需,可选和查询参数 . 您定义的"optional"参数不是"optional",因为Angular已定义可选参数 . 对于"true"可选参数,您无需将它们定义为路径配置的一部分 . 所以你可以像这样定义一条只有_1177656的路线:

    const routes: Routes = [
      {
        path: 'stuff/info',
        component: InfoComponent,
      }
    ]
    

    然后,您可以使用.navigate或routerLink添加可选参数,如下图所示 .

    enter image description here

    注意:从Angular 4开始,这应该是

    this.route.snapshot.paramMap.get('start')

    或者,您始终可以传递id并在create上传递0或其他已知值 . 我在这里有一个完整的例子:https://github.com/DeborahK/Angular-Routing

相关问题