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