angular - Angular 2+,有什么方法可以声明一个模块中的所有组件,然后在 app.module.ts 中导入?
问题描述
嗨,我正在尝试在单个模块中声明所有组件,然后将该组件模块添加到 app.module.ts 的导入中。
import { LandingPageComponent } from './landing-page/landing-page.component';
import { JobSeekerComponent } from './job-seeker/job-seeker.component';
import { RecruiterComponent } from './recruiter/recruiter.component';
import { PostJobsComponent } from './recruiter/post-jobs/post-jobs.component';
import { JobSeekerLayoutComponent } from './layout/job-seeker-layout/job-seeker-layout.component';
import { RecruiterLayoutComponent } from './layout/recruiter-layout/recruiter-layout.component';
import { RecruiterHeaderComponent } from './layout/recruiter-header/recruiter-header.component';
import { AutocompleteComponent } from './common/autocomplete/autocomplete.component';
import { NgModule } from '@angular/core';
@NgModule({
imports: [
LandingPageComponent,
JobSeekerComponent,
RecruiterComponent,
PostJobsComponent,
JobSeekerLayoutComponent,
RecruiterLayoutComponent,
RecruiterHeaderComponent,
AutocompleteComponent
],
exports: [
LandingPageComponent,
JobSeekerComponent,
RecruiterComponent,
PostJobsComponent,
JobSeekerLayoutComponent,
RecruiterLayoutComponent,
RecruiterHeaderComponent,
AutocompleteComponent
],
})
export class **ComponentsModule** { }
这是我创建的组件模块,然后我想在 app.module.ts 中初始化它。这会起作用吗,因为当我尝试这样做时,它会引发错误 请添加@NgModule 注释。在我的 app.module.ts 中。我做了这样的事情。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { **ComponentsModule** } from './components';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from './material';
import { HttpClientModule } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
MaterialModule,
AppRoutingModule,
FormsModule,
HttpClientModule,
ReactiveFormsModule,
**ComponentsModule**
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
解决方案
而不是importing
组件,您应该将declare
它们放入ComponentsModule
@NgModule({
declarations: [ // declare components here
LandingPageComponent,
JobSeekerComponent,
RecruiterComponent,
PostJobsComponent,
JobSeekerLayoutComponent,
RecruiterLayoutComponent,
RecruiterHeaderComponent,
AutocompleteComponent
],
exports: [
LandingPageComponent,
JobSeekerComponent,
RecruiterComponent,
PostJobsComponent,
JobSeekerLayoutComponent,
RecruiterLayoutComponent,
RecruiterHeaderComponent,
AutocompleteComponent
],
})
推荐阅读
- python - 使用“np.datetime64”对象填充空 Numpy 数组时出错
- ruby-on-rails - 模型关联使用includes方法关联3个表
- c - 如何修复 unix socket 编程中的段错误?
- android - 应用程序仅在 PIE 版本中显示没有 Internet 连接
- angular - @Injectable({providedIn: Module}) => 循环依赖(ROUTES)
- driver - Windows 10 x64 无法识别驱动程序符号
- apache - 如何修复“htaccess 将整个站点重定向到维护,除了一个 IP”
- swift - 从 NSObject 继承但在 Swift 中标有 @objc 的两个类之间有区别吗?
- hyperledger-fabric - 如何在超级账本作曲家中管理我的资产?
- xml - XSLT 输出方法“xml”未将 html 标记显示为 html 输出