Angular2主组件(引导程序)的解析器是什么?

3
在Angular2中,是否可能在主组件之前解析服务?
2个回答

0
在主路由文件中,在最顶层,你可以提及一个解析器名称,该解析器将在最顶层组件加载之前被解析(即引导组件)。
    {
    path: '',
    resolve: AppComponentResolve,
    children: [
        {
            path: 'somePath',
            component: SomeCOmponent
        }]
    }

将解析器作为可注入项添加到appComponent文件中。
    @Injectable()
    export class AppComponentResolve implements Resolve<any> {

    resolve(){
      //return resolved data
     }
    }

-1

在应用程序的默认解析中执行服务

export const appRoutes: Routes = [
  {path:'', pathMatch: 'full', redirectTo: 'home'},
  { 
    path: 'home',
    component: AppComponent,
    resolve: function(){
         //your service call 
    },
  { 
    path: 'path1/:id',
    component: YourComponent,
    resolve: {
      someObject: ComponentResolve
    }
  }
];

@Injectable()
export class ComponentResolve implements Resolve<Interface> {

  constructor(private yourService: YourService) {}

  resolve(route: ActivatedRouteSnapshot) {
    return this.yourService.getMethod(route.params['id']);
  }

我的引导主组件没有路由,path: '' 重定向到 path: 'home',component: 'HomeComponent',AppComponent 由 @NgModule({.....bootstrap:[AppComponent]}) 引导。 - undefined
我有一个使用platformBrowserDynamic().bootstrapModule(AppModule);的main.ts文件。 - undefined
是的,我明白了。也许我有什么误解,但是在我的应用程序中,AppComponent与“空路径”路由没有连接。相反,它是由主模块引导的。我不想在HomeComponent上使用resolve,并且{path:'', pathMatch: 'full', redirectTo: 'home', resolve:{...}},{path: 'home', component: HomeComponent}并没有起作用。 - undefined
让我们在聊天室继续交流。 - undefined
1
这个解决方案只是将位于“home”路由的组件命名为AppComponent,但这并不意味着它是被引导的组件。 - undefined
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接