I am trying to send a filtered array from my pipe to my component, using @Inject(forwardRef(())
like this:
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
...
}
What I am trying to to, is injecting more components, because I use this pipe in 4 components. And I tried something like this:
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) {
}
but I get
ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[FilterPipe -> ClosedItemsComponent]: StaticInjectorError(Platform: core)[FilterPipe -> ClosedItemsComponent]: NullInjectorError: No provider for ClosedItemsComponent!
I can't inject more components inside pipe constructor? How can I solve this? Thank you for your time!
(P.S - I know using pipes is bad, but this is just for a demo, not the final version)