Как получить доступ к свойствам и методам дочерних компонентов в одной переменной? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть один родительский компонент и несколько дочерних компонентов.

<parent>
  <child1></child1>
  <child2></child2>
  ...
</parent>

Для связи между родительским потомком я также могу использовать декораторы событий (@Input/@Output). В качестве альтернативы я могу использовать несколько @ViewChild, как показано ниже для доступа к дочерним свойствам и методам. (Без учета услуг и наблюдаемых)

@ViewChild('child1') child1: Child1;
@ViewChild('child2') child2: Child2; 
//.... so on

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

Есть ли в angular способ, похожий на @ViewChild, где я могу получить ссылку на все дочерние элементы в одной переменной и перебрать эту переменную для доступа к свойствам и методам каждого дочернего элемента?

Любая помощь приветствуется !!!

1 Ответ

0 голосов
/ 28 июня 2019

Если вы имеете в виду дочерние элементы, которые являются одними и теми же компонентами, а не в примере, и у вас действительно есть несколько экземпляров компонентов, таких как:

<some-container>
  <app-child></app-child>
  <app-child></app-child>
  <app-child></app-child>
</some-container>

Тогда вы можете получить их все с помощью декоратора @ViewChildren, как я указал ниже:

@ViewChildren(AppChildComponent) public QueryList<AppChildComponent>;

И вы можете повторить их с помощью метода forEach, который существует в QueryList.

...