У меня есть родительский компонент, который в основном представляет собой форму, составленную из двух дочерних компонентов, каждый из которых состоит из набора inputs
.Вот шаблон родительского компонента:
<!-- Bunch of user selected filters -->
<app-filters #filters>
</app-filters>
<!-- Bunch of user selected grouping options -->
<app-grouping-options #groupingOptions>
</app-grouping-options>
<!-- Emit an event with the composed query so
other component can recover and show the data
to the user -->
<button (click)="emitQuery(filters.getFilteringCriteria(), groupingOptions.getGroupingCriteria())">Search</button>
Интересующая меня часть - это вызовы методов filters.getFilteringCriteria()
и groupingOptions.getGroupingOptionsCriteria()
.Я не уверен, является ли это хорошей практикой вообще, особенно потому, что она, кажется, нарушает предполагаемый поток данных: от родителей к детям через привязку свойств, и от детей к родителю через события .Но я действительно не знаю, как поступить в этом случае, потому что функциональность поиска - это действительно метод, а не свойство.
Кроме того, каков наилучший подход для ссылки на дочерний компонент?Через переменные шаблона или используя @ViewChild
?
Спасибо за вашу помощь.