Привязка компонента к свойствам и событиям в шаблоне, передаваемом из родительского элемента

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

Некоторый контекст: я создаю компонент, который абстрагирует концепцию перетаскиваемого и редактируемого списка. Он должен работать со списками чего угодно, а не только со строками. Иногда я использую его для редактирования массивов строк, иногда я использую его для редактирования списков объектов.

Чтобы сделать его способным обрабатывать или / или, я создал подкомпоненты, которые пользователь компонента использует для управления рендерингом каждого элемента списка. В итоге это выглядит так (упрощенно для иллюстрации):

<list-editor [list]="theList">
  <ng-template><value/></ng-template>
</list-editor>

Или для редактирования объекта:

<list-editor [list]="theObjects">
  <ng-template><field name="foo"/><field name="bar"/></field>
</list-editor>

Требуется больше разметки, но вы поймете.

Хитрость в том, что для выполнения этой работы требуется внутренняя уборка. Вещи перешли в list-editor нужно пройти в field а также value компоненты. Когда они испускают (change) событие, list-editor должен знать об этом, и передать это. Моя цель состоит в том, чтобы избежать возложения ответственности за все эти "подключения" на родительский компонент и позаботиться об этом во внутренних list-editor,

В list-editor у меня есть TemplateRef к <ng-template> тег. Я хотел бы внедрить необходимые привязки свойств и прослушиватели событий в любой field или же value теги внутри него. Это вообще возможно? И если так, как это делается?

0 ответов

Другие вопросы по тегам