1、创建组件(创建一个headers的组件)
命令: ng g c headers
命令: ng g c /component/headers (带路径的)
2、appmodule.ts中直接引用(HeadersComponent)这个名字必须是有Component
import { HeadersComponent } from './compontents/headers/headers.component';
3、declarations中注册
declarations: [
HeadersComponent
]
4、在app.component.html中可以使用
<app-headers></app-headers>
//注释:如果您的组件用于动态生成的内容,例如弹框的时候展示组件这个时候单单上面的组测是无法展示组件内容的。这个时候会报错提示我们
ERROR Error: No component factory found for CreateGaugeComponent. Did you add it to @NgModule.entryComponents?
我查了文档:解决错误的方法是:在你相应的module.ts中需要在下面注入一下
entryComponents: [
HeadersComponent
]
entryComponents
在这里做什么? 组件已经在声明中定义。 那么有什么需要重复呢? 如果我不在这里包含组件,会发生什么?
回答:
Angular使用entryComponents来启用“树震动”,即只编译项目中实际使用的组件,而不是编译所有在ngModule中声明但从未使用的组件
这是用ViewContainerRef.createComponent()添加的动态添加的组件。将它们添加到entryComponents告诉脱机模板编译器编译它们并为它们创建工厂。