我正在尝试将项目从 Angular 7 迁移到 Angular 8。
但是,升级到 Angular 8 后,HeaderComponent 出现以下错误。
zone.js:199 未捕获的错误:找不到 HeaderComp 的组件工厂。你把它添加到@NgModule.entryComponents 了吗?在 NoComponentFactoryError (core.js:17988) 在 CodegenComponentFactoryResolver.push../node_modules/@angular/core/fesm5/core.js.CodegenComponentFactoryResolver.resolveComponentFactory (core.js:18026) 在 CodegenComponentFactoryResolver.push../node_modules/@angular /core/fesm5/core.js.CodegenComponentFactoryResolver.resolveComponentFactory (core.js:18023) 在 AngularFrameworkComponentWrapper.push../node_modules/ag-grid-angular/dist/angularFrameworkComponentWrapper.js.AngularFrameworkComponentWrapper.createComponent (angularFrameworkComponentWrapper.js:65)在 DynamicAgNg2Component.createComponent (angularFrameworkComponentWrapper.js:44) 在 DynamicAgNg2Component.push..
请在下面找到 HeaderComponent 和 app.module.ts。
这是针对 Angular 8 的,所以它在 Angular 7 中工作,在我在 Google 上搜索后,我通过声明 entryComponent 改进了 app.module.ts。
HeaderComponent.ts:
import { Component, OnInit, OnDestroy, Inject, forwardRef, Input } from
'@angular/core';
import { pagesToggleService } from '../../services/toggler.service'
import { Subscriber } from 'rxjs/Subscriber'
declare var pg: any;
@Component({
selector: 'pg-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss']
})
export class HeaderComponent implements OnInit, OnDestroy {
_headerClass = "";
isHorizontalLayout: false;
_service;
@Input()
boxed: boolean = false;
@Input()
extraClass: string = "";
constructor(private toggler: pagesToggleService) {
}
ngOnInit() {
this.isHorizontalLayout = pg.isHorizontalLayout;
this._service = this.toggler.headerClass
.subscribe(state => {
this._headerClass = state;
});
}
ngOnDestroy() {
this._service.unsubscribe()
}
}
app.module.ts:
@NgModule({
declarations: [
HeaderComponent
]
entryComponents: [
HeaderComponent
]
我希望它可以在 Angular 8 中工作,但它会抛出“找不到 HeaderComp 的组件工厂”。错误。
请帮我找到解决方案。
谢谢,
亲切的问候。
贝古姆