Отправка данных из канала в компонент с помощью @Inject (forwardRef (()) - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь отправить отфильтрованный массив из моего канала в мой компонент, используя @Inject(forwardRef(()), например:

filter.pipe.ts

constructor(@Inject(forwardRef(() => OpenItemsComponent)) private ded_open: OpenItemsComponent) {}
transform(items: any[], field: string, value: string[]): any[] {
    ...
    this.ded_open.filteredData(this.newArray)
    ...
}

app.ts

...
filteredData(val) {
    this.currentFilter = val.slice()
    console.log(this.currentFilter) // in currentFilter I will have the filtered array
...

}

Я пытаюсь добавить больше компонентов, потому что я использую этот канал в 4 компонентах.И я попробовал что-то вроде этого:

constructor(
@Inject(forwardRef(() => OpenItemsComponent)) private ded_open: OpenItemsComponent,
@Inject(forwardRef(() => ClosedItemsComponent)) private ded_closed: ClosedItemsComponent,
@Inject(forwardRef(() => TrdIComponent)) private trade_open: TradeInvoicesComponent,
@Inject(forwardRef(() => TrdIClosedComponent)) private trade_closed: TradeInvoicesClosedComponent) {
  }

но я получаю

Ошибка: ошибка (в обещании): ошибка: StaticInjectorError (AppModule) [FilterPipe -> ClosedItemsComponent]:StaticInjectorError (Platform: core) [FilterPipe -> ClosedItemsComponent]: NullInjectorError: Нет поставщика для ClosedItemsComponent!

Не могу добавить больше компонентов в конструктор каналов?Как я могу решить это?Спасибо за потраченное время!

(PS - я знаю, что использование труб - это плохо, но это только для демонстрации, а не для финальной версии)

...