2017-08-13 107 views
0

我的应用程序的主要成分是这样的初始化两次。 enter image description here引导组件在角应用

我认为这是一个事实,即没有为此组件定义以及路线,因为它是一个引导组件引起的:

RouterModule.forRoot([ 
     { 
     path: '', 
     component: AppComponent, 
     canActivate: [AuthGuard], 
     data: { 
      roles: [Role.USER] 
     } 
     } 
    ]) 

的AppModule:

@NgModule({ 
    imports: [ 
    BrowserModule, 
    HttpModule, 
    AppRoutingModule, 
    SharedModule.forRoot(), 
    SecurityModule, 
    ParticipantModule, 
    DashboardModule, 
    RequestModule, 
    SchoolModule 
    ], 
    declarations: [AppComponent], 
    providers: [{ 
    provide: APP_BASE_HREF, 
    useValue: '<%= APP_BASE %>' 
    }], 
    bootstrap: [AppComponent] 

}) 
export class AppModule { 
} 

而且我通过删除这条路线来验证它。但是,我确实需要关闭登录后面的组件。正如你所看到的那样,我正在使用canActivate,但是如果我删除了路由,我必须使用其他机制。 如何才能实现应用程序的正确初始化?还是我在一个错误的道路上?

+0

它不清楚你想要什么 –

+0

我认为你应该将你的路线移动到另一个组件,并使用'AppComponent'仅用于引导 – JohnnyAW

+0

@JohnnyAW是的,我在想这个,但这是否意味着没有根网址我必须总是重定向到其他东西? –

回答

2

的原因是,

@NgModel({ 
    ... 
    bootstrap:[AppComponent]    //You must be bootstrapping AppComponent here 
}) 

,并再次通过路由器,你说当路由'',请重新启动AppComponent