该组件不能用作输入组件

时间:2018-09-12 10:43:57

标签: angular

  

错误:MyComponent不能用作EntryComponent

以上ng build时收到的错误消息。该组件来自另一个自定义角度包的模块。 最有趣的是,如果我提供服务并再次保存模块,错误就会消失。但是有了ng build,它就保留了。

还请注意,MyComponent还在内部基于输入属性创建动态组件。

4 个答案:

答案 0 :(得分:0)

您是否尝试过将组件添加到模块的entryComponents

答案 1 :(得分:0)

在忘记用@Component{ ... })装饰组件类之后,我收到了此错误。

添加组件装饰器可解决此问题。

答案 2 :(得分:0)

就我而言,我可以访问自定义库,即使将组件添加到库模块内的entryComponents后,错误仍然存​​在。原来是由于我的index.ts文件所致:在库模块的文件夹中,我有一个index.ts文件,该文件正在重新导出模块及其组件。在库的public_api.ts内部,我使用了index.ts的导出,因此看起来像这样:

...
export * from './lib/shell';

以某种方式Angular不喜欢库中的index.ts文件,但我得到了错误(语言服务也抛出错误,无法识别标签)。将index.ts更改为public-api.ts可以解决此问题:

...
export * from './lib/shell/public-api';

答案 3 :(得分:-1)

您需要在组件中插入Service或它是任何父组件。我在app.module.ts中添加了以下服务,该服务实例将在所有子组件中可用。

import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { HttpModule } from '@angular/http';

    import { AppComponent } from './app.component';        
    import { MyComponent } from 'Service path';

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpModule
      ],
      providers: [MyComponent],
      bootstrap: [AppComponent]
    })
    export class AppModule { }