StaticInjectorError при импорте пользовательской библиотеки Angular - PullRequest
0 голосов
/ 06 ноября 2019

Я создал свою собственную библиотеку Angular (называемую ProcessorModule) и хочу использовать ее в других приложениях. Однако всякий раз, когда я импортирую библиотеку, я получаю следующую ошибку:

StaticInjectorError(AppModule)[StatusComponent -> MainProcessComponent].
NullInjectorError: No provider for MainProcessComponent!

Это происходит в html MainProcessComponent, который имеет вложенный StatusComponent (особенно когда я использую селектор 'status':

/* MainProcessComponent.html */
<h2>This is the MainProcessComponent view</h2>

<div>
    <status></status>
</div>

Это мой файл processor.module.ts:

import { NgModule } from '@angular/core';
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
import { HttpClientModule } from "@angular/common/http";

import { MainProcessComponent } from "./components/process.component";
import { StatusComponent } from "./components/status.component";

@NgModule({
  imports: [
    routing,
    CommonModule,
    FormsModule,
    HttpClientModule
  ],
  exports: [
    MainProcessComponent,
    ProcessComponent,
    StatusComponent
  ],
  declarations: [
    MainProcessComponent,
    ProcessComponent,
    StatusComponent
  ],
  bootstrap: [

  ]
})
export class ProcessorModule { }

Я создаю / упаковываю файл .tgz для ProcessorModule и импортирую его во внешнее приложение, используя

import { ProcessorModule} from "processor-module";

В разделе импорта @NgModule я добавляю:

@NgModule({
    imports: [
        ...,
        ProcessorModule,
        ...
    ]
})
export class OutsideAppModule { }

Имейте в виду, что приведенный выше код был упрощен, чтобы проиллюстрировать мою проблему. Я думал, что добавление обоих компонентов в раздел экспорта processor.module.ts приведет крешил мою проблему. Может кто-нибудь увидеть, что именно я делаю не так?

РЕДАКТИРОВАТЬ: Я добавил MainProcessComponent как в разделы «export», так и в «декларации» файла processor.module. но я все еще получаю ту же ошибку.

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

MainProcessComponent не экспортируется в массив экспорта processor.module.ts.

processor.module.ts

@NgModule({
  imports: [..],
  exports: [
    ProcessComponent,
    StatusComponent,
    MainProcessComponent // added
  ],
  declarations: [...],
  bootstrap: [... ]
})
export class ProcessorModule { }
0 голосов
/ 06 ноября 2019

Разобрался с моей проблемой - у меня были некоторые компоненты, объявленные в конструкторе другого компонента (не показан выше), которые не использовались. После их удаления все работало нормально.

...