我一直在阅读 Angular 2 项目的种子模板,并且有一个关于何时在较大模块中包含模块与组件的问题。我知道建议为每个功能创建模块,但很难决定如何构建。
我有一个项目,其中有一个公共和管理部分(管理员被包裹在警卫中)。每个部分都有一些不同的功能,但它们共享相同的基础模型(获取项目、创建项目等)。我的问题是,在知道某些组件需要保护的情况下,构建它的最佳方法是什么?我是否有一个 AppModule,其下方有一个 Public 和 AdminModule(受保护)(具有引用共享模块中的模型的组件)以及每个功能的模块?还是我有一个 AppModule,下面有所有功能模块并直接保护每个组件?我想这个问题被问了很多,或者我问错了地方,所以任何关于在哪里/做什么的方向都会受到赞赏。
AppModule 供参考
import { NgModule, Inject } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonModule, APP_BASE_HREF } from '@angular/common';
import { HttpModule, Http } from '@angular/http';
import { FormsModule } from '@angular/forms';
import { Ng2BootstrapModule } from 'ngx-bootstrap';
import { NavMenuComponent } from './navmenu/navmenu.component';
import { NotFoundComponent } from './not-found/not-found.component';
import { LinkService } from '../shared/link.service';
import { AuthenticationService } from './authentication.service';
import { ORIGIN_URL } from '../shared/constants/baseurl.constants';
import { TransferHttpModule } from '../../modules/transfer-http/transfer-http.module';
@NgModule({
declarations: [
NavMenuComponent,
NotFoundComponent
],
imports: [
CommonModule,
HttpModule,
FormsModule,
RouterModule,
Ng2BootstrapModule.forRoot(),
TransferHttpModule,
],
providers: [
LinkService,
AuthenticationService,
],
exports: [
CommonModule,
HttpModule,
FormsModule,
Ng2BootstrapModule,
TransferHttpModule,
RouterModule
]
})
export class CoreModule {
}