например обьявить интерфейс и токен
в директиве инжектить этот интерфейс по этому токену
а в компоненте имплементить этот интерфейс и провайдить его по этому токену
Я пробовала так:
Делала класс CustomOption для EditedOptionComponent и SearchOptionComponent и имплементилась от него в них
В модуле каждого компонента делала providers: [{provide: CustomOption, useClass: EditedOptionComponent}]
1. в директиве если использовать @Host() option: CustomOption<T> - ругается фронт что нет компонента CustomOption
Я убрала @Host()
А потом, где я вызываю эти оба компонента и импортирую модули происходит следующее:
Если Использовать multi:true в providers - тогда я в option получаю [EditedOptionComponent, SearchOptionComponent]
Если без multu то option - то все EditedOptionComponent (потому что он последним импортирован в модуль, где вызываются комопненты)