Kal*_*eab 10 typescript angular2-routing angular
可以将静态数据传递给Angular 2路由而不在URL上显示它.
但是如何以相同的方式传递动态数据/对象?
您可以使用解析器。解析器返回的数据可用于路由,其方式data与路由配置中的静态方式相同:
有关示例,请参见https://angular.io/guide/router#resolve-guard
Run Code Online (Sandbox Code Playgroud)@Injectable() export class CrisisDetailResolve implements Resolve<Crisis> { constructor(private cs: CrisisService, private router: Router) {} resolve(route: ActivatedRouteSnapshot): Promise<Crisis>|boolean { let id = route.params['id']; return this.cs.getCrisis(id).then(crisis => { if (crisis) { return crisis; } else { // id not found this.router.navigate(['/crisis-center']); return false; } }); } }
Run Code Online (Sandbox Code Playgroud)path: '', component: CrisisListComponent, children: [ { path: ':id', component: CrisisDetailComponent, canDeactivate: [CanDeactivateGuard], resolve: { crisis: CrisisDetailResolve } },
Run Code Online (Sandbox Code Playgroud)ngOnInit() { this.route.data .subscribe((data: { crisis: Crisis }) => { this.editName = data.crisis.name; this.crisis = data.crisis; }); }
| 归档时间: |
|
| 查看次数: |
9431 次 |
| 最近记录: |