0

我正在尝试将项目从 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 的组件工厂”。错误。

请帮我找到解决方案。

谢谢,

亲切的问候。

贝古姆

4

2 回答 2

0

在声明部分中,首先在 app.module.ts 中添加 app 组件,例如:

@NgModule({
declarations: [AppComponent,HeaderComponent],
entryComponents: [HeaderComponent]
})

谢谢

于 2019-06-14T08:32:58.917 回答
0

该错误表示 HeadComp 而不是 HeaderComponent 所以这是一个网格问题,我通过在 html 中使用 ngx-datatable 修复了它。

于 2019-06-14T11:35:51.260 回答