我是Angular2的新手。我试图创建一个组件,但显示一个错误。
这是app.component.ts文件。
import { Component } from '@angular/core';
import { MyComponentComponent } from './my-component.component';
@Component({
selector: 'my-app',
template: `
<h1>Hello {{name}}</h1>
<h4>Something</h4>
<my-component></my-component>
`,
directives: [MyComponentComponent]
})
export class AppComponent { name = 'Sam' }
这是我要创建的组件。
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<p>This is my article</p>
`
})
export class MyComponentComponent {
}
显示两个错误:
如果my-component是一个Angular组件,那么验证它是否是这个模块的一部分。
如果my-component是Web组件,那么将CUSTOM_ELEMENTS_SCHEMA添加到@NgModule中。模式来抑制此消息。
请帮助。
你的MyComponentComponent应该在MyComponentModule中。
在MyComponentModule中,你应该把MyComponentComponent放在“exports”中。
类似的代码,请参见下面的代码。
@NgModule({
imports: [],
exports: [MyComponentComponent],
declarations: [MyComponentComponent],
providers: [],
})
export class MyComponentModule {
}
并像这样将MyComponentModule放在app.module.ts的导入中(参见下面的代码)。
import { MyComponentModule } from 'your/file/path';
@NgModule({
imports: [MyComponentModule]
declarations: [AppComponent],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
这样做之后,组件的选择器现在可以被应用程序识别。
你可以在这里了解更多信息:https://angular-2-training-book.rangle.io/handout/modules/feature-modules.html
希望你有app.module.ts。
在app.module.ts中添加以下行-
exports: [myComponentComponent],
是这样的:
import { NgModule, Renderer } from '@angular/core';
import { HeaderComponent } from './headerComponent/header.component';
import { HeaderMainComponent } from './component';
import { RouterModule } from '@angular/router';
@NgModule({
declarations: [
HeaderMainComponent,
HeaderComponent
],
imports: [
RouterModule,
],
providers: [],
bootstrap: [HeaderMainComponent],
exports: [HeaderComponent],
})
export class HeaderModule { }
你是否像这样在app.module.ts中导入它并删除指令位:-
@NgModule({
bootstrap: [AppComponent],
imports: [MyComponentModule],// or whatever the name of the module is that declares your component.
declarations: [AppComponent],
providers: []
})
export class AppModule {}
你的MyComponentModule应该是这样的
@NgModule({
imports: [],
exports: [MyComponentComponent],
declarations: [MyComponentComponent],
providers: [],
})
export class MyComponentModule {
}
在MyComponentModule中声明你的MyComponentComponent
将你的MyComponentComponent添加到MyComponentModule的exports属性中
mycomponentModule.ts
@NgModule({
imports: [],
exports: [MyComponentComponent],
declarations: [MyComponentComponent],
providers: [],
})
export class MyComponentModule {
}
将MyComponentModule添加到AppModule imports属性中
app.module.ts
@NgModule({
imports: [MyComponentModule]
declarations: [AppComponent],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
重要的是如果你仍然有这个错误,停止你的服务器从终端ctrl+c,并再次运行ng serve -o