可以通过使用字符串化数组参数并在路由器配置中进行解析来实现此目的。以下是如何使用此方法的示例代码:
路由器配置:
const routes: Routes = [
{
path: 'example',
component: ExampleComponent,
resolve: {
exampleData: ExampleResolver
}
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
ExampleResolver:
@Injectable({
providedIn: 'root'
})
export class ExampleResolver implements Resolve {
resolve(route: ActivatedRouteSnapshot): Observable | Promise | any {
const exampleData = JSON.parse(route.queryParamMap.get('exampleData'));
return exampleData;
}
}
在您的组件中,您可以使用JSON.stringify
将数组参数传递给路由器导航方法:
const exampleData = ['hello', 'world'];
this.router.navigate(['/example'], { queryParams: { exampleData: JSON.stringify(exampleData) } });
然后,在您的组件中,可以通过从解析器注入exampleData
来访问此数据:
export class ExampleComponent {
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.data.subscribe(data => {
console.log(data.exampleData);
});
}
}