Angular2 RC5 - 完成加载配置文件后的路由
Angular2 RC5 - route after finish loading config file
我正在使用 RC5 编写 Angular2 应用程序。
当 AppComponent 加载时,我希望应用程序使用 http 请求配置文件,并且在加载后我希望应用程序导航到指定的路由?
我怎样才能做到这一点?
每条路线都有'canActivate' 属性,但我会发现它与如果我每次都想做某事有更多关系用户导航到新路线。主要用于身份验证目的,您只希望通过身份验证保护少数路由,但在我的情况下,我想在 AppComponent 加载时加载配置。并非在每条路线激活或导航上。
希望我清楚自己想要实现的目标。
您可以在 canActivate
守卫中存储初始重新导航已经完成并且仅供后续调用 return true
.
您可以使用单个路由配置路由器
{ path: '**', InitComponent }
并在 InitComponent
加载您的配置,重新配置路由器(传递所有路由),然后转发到最初请求的路径。
另见
您应该创建一个执行请求的解析器,将解析器添加到路由并在组件的 onInit 中获取解析的配置数据。
Component.Route:
export const routes: Route[] = [
{ path: ':id', component: Component1, resolve: { data: Comp1Resolver }}
];
Comp1解析器:
@Injectable()
export class Comp1Resolverimplements Resolve<Config> {
constructor(private configService: ConfigService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Config> {
return this.configService.get(route.params['id']);
}
}
组件 1:
ngOnInit() {
let that = this;
this.route.data.subscribe(data => {
that.config= data['data'];
我正在使用 RC5 编写 Angular2 应用程序。
当 AppComponent 加载时,我希望应用程序使用 http 请求配置文件,并且在加载后我希望应用程序导航到指定的路由?
我怎样才能做到这一点?
每条路线都有'canActivate' 属性,但我会发现它与如果我每次都想做某事有更多关系用户导航到新路线。主要用于身份验证目的,您只希望通过身份验证保护少数路由,但在我的情况下,我想在 AppComponent 加载时加载配置。并非在每条路线激活或导航上。
希望我清楚自己想要实现的目标。
您可以在 canActivate
守卫中存储初始重新导航已经完成并且仅供后续调用 return true
.
您可以使用单个路由配置路由器
{ path: '**', InitComponent }
并在 InitComponent
加载您的配置,重新配置路由器(传递所有路由),然后转发到最初请求的路径。
另见
您应该创建一个执行请求的解析器,将解析器添加到路由并在组件的 onInit 中获取解析的配置数据。
Component.Route:
export const routes: Route[] = [
{ path: ':id', component: Component1, resolve: { data: Comp1Resolver }}
];
Comp1解析器:
@Injectable()
export class Comp1Resolverimplements Resolve<Config> {
constructor(private configService: ConfigService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Config> {
return this.configService.get(route.params['id']);
}
}
组件 1:
ngOnInit() {
let that = this;
this.route.data.subscribe(data => {
that.config= data['data'];