我有以下路由,id是可选参数,因此用户可以加载信息,或者如果没有提供id,他们可以添加信息 . 我希望能够重用该组件,以便页面不必重新加载(在ngOnInit中的api调用),但是因为它们是两个单独的路径,角度总是创建一个全新的组件并且调用ngOnInit .
我尝试过使用儿童,但仍然遇到同样的问题
(这是与角4路由器)
const routes: Routes = [
{
path: 'stuff/info',
component: InfoComponent,
},
{
path: 'stuff/info/:id',
component: InfoComponent,
},
]
1 回答
Angular有必需,可选和查询参数 . 您定义的"optional"参数不是"optional",因为Angular已定义可选参数 . 对于"true"可选参数,您无需将它们定义为路径配置的一部分 . 所以你可以像这样定义一条只有_1177656的路线:
然后,您可以使用.navigate或routerLink添加可选参数,如下图所示 .
注意:从Angular 4开始,这应该是
this.route.snapshot.paramMap.get('start')
或者,您始终可以传递id并在create上传递0或其他已知值 . 我在这里有一个完整的例子:https://github.com/DeborahK/Angular-Routing