app.module.shared.ts和app.shared.module.ts之间的区别

时间:2018-03-31 06:17:17

标签: angular

我正在开发Angular App(版本4.2.5),App.Module文件分为3个文件:App.Browser.Module.ts,App.Server.Module.ts和App.Shared.Module .TS。 这与我创建的最后一个Angular App(Angular版本4.1.2)不同。它还有3个app.module文件。但这些名称不同,行为似乎有点不同。 调用了文件:app.module.client.ts,app.module.server.ts和app.module.shared.ts。 关于Angular App(4.1.2)的好处。我尽可能多地放入app.module.shared.ts(例如也是bootstrap组件),如下所示:bootstrap: [AppComponent] 然后在App.module.client.ts和app.module.server.ts中调用该片段,如下所示:

bootstrap: [sharedConfig.bootstrap]

在旧版本中,我看到NgModule正在导出为常量(这就是我认为它正常工作的原因):

export const sharedConfig: NgModule = {

declarations: [
    AppComponent,
    HomeComponent,
    HeaderComponent,
    ProductionfileComponent,
    ProductionFileSummary,
    ProductionFileDetailComponent,
    LoginComponent
],
imports: [
    RouterModule.forRoot([
        { path: '', redirectTo: 'login', pathMatch: 'full' },
        { path: 'login', component: LoginComponent },
        { path: 'productionFiles', component: ProductionfileComponent, canActivate: [ AuthGuard ] },
        { path: 'productionfiledetail/:prodHeaderOrdNr', component: ProductionFileDetailComponent, canActivate:  [ AuthGuard ] },
        { path: '**', redirectTo: 'login' }
    ]),
    BrowserModule,
    FormsModule
],
providers: [AuthGuard],
bootstrap: [AppComponent]

};

在新的app.module文件(角度版本4.2.5)中,这不起作用。为什么会改变?有人可以解释一下。我知道我可以更改App.Shared.Module.ts中的代码,与app.module.server.ts中的代码相同,但我不明白为什么模板被更改。所以有人可以解释一下......

1 个答案:

答案 0 :(得分:0)

app.module.server.ts:用于应用程序的SSR(服务器端呈现) - 角度通用(在nodejs通用服务器中呈现应用程序)

app.module.client.ts - 用于预呈现,即与app.module.browser.ts相同(在浏览器级别呈现应用程序)

阅读本文档,这将为您提供一个清晰的想法。 enter image description here