是否可以将动态数据传递到 Angular 路由模块?
Is it possible to pass dynamic data into an Angular routing module?
我必须将数据传递到路由 (Angular v12.0.1):
// my-module-routing.module.ts
const routes: Routes = [
{ path: '', component: MyComponent, data: { key: '-> THIS HAVE TO BE DYNAMIC <-' } }
]
这个动态数据要通过组件的调用传递,可以在HTML用RouterLink,也可以在TS用navigateWithHistory(),但是要改变的是Route里面的数据。
我不知道这是否可行,如果不行,是否有其他选择?
您可以使用解析器加载动态数据。
Angular documentation 有一个很好的示例展示了如何从服务中获取数据,但您可以 return 任何数据。
然后可以这样获取组件内部的数据:
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
this.data = this.route.snapshot.data;
}
重要的是要注意解析器上的代码将在加载组件之前 运行。
我必须将数据传递到路由 (Angular v12.0.1):
// my-module-routing.module.ts
const routes: Routes = [
{ path: '', component: MyComponent, data: { key: '-> THIS HAVE TO BE DYNAMIC <-' } }
]
这个动态数据要通过组件的调用传递,可以在HTML用RouterLink,也可以在TS用navigateWithHistory(),但是要改变的是Route里面的数据。
我不知道这是否可行,如果不行,是否有其他选择?
您可以使用解析器加载动态数据。 Angular documentation 有一个很好的示例展示了如何从服务中获取数据,但您可以 return 任何数据。
然后可以这样获取组件内部的数据:
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
this.data = this.route.snapshot.data;
}
重要的是要注意解析器上的代码将在加载组件之前 运行。