Обзор:
Я просто пытаюсь понять, как правильно справиться с этим сценарием.Скажем, я хочу
создать собственную версию компонента (скажем, элемент выбора фруктов), используя существующий компонент (скажем, mat-select
).Теперь предположим, что существующий компонент предоставляет набор @inputs
и @outputs
, который мой компонент не "повторно предоставляет" своим собственным потребителям.
Что если бы теперь были приложения, которые хотели бы использовать мой пользовательскийкомпонентов, но также хотел использовать «нижний» компонент @inputs/@outputs
?
Вот пример того, что я пытаюсь передать:
В этом примере скажем, что я создал FruitSelect
компонент, который состоит из MatSelect
+ some custom behavior around it
.Но для этого примера я намеренно не выставил placeholder
@Input
, предоставляемый MatSelect
.
Как приложение, которое хочет использовать FruitSelect
в своем представлении, может указать placeholder
?
Опции, которые я мог бы придумать:
- Пройдите через класс
MatSelect
и вручную повторно откройте все @Inputs
и @Outputs
,Для @Outputs
мне придется написать методы-обертки, которые просто распространяют события. - Сделать мой
FruitSelect
extension MatSelect
, чтобы он неявно имел доступ к своему *Интеракторы 1048 *.Хотя это кажется дизайнерским первым решением, которое приходит на ум, не уверен, что это легко выполнимо.Поиск в Google не показал, что многие люди делают это, так что не уверен.