Я создал свою собственную библиотеку 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. но я все еще получаю ту же ошибку.