как получить доступ к элементам внутри другого элемента viewchild в angular

У меня есть такой список переменных.

languages: {languageDesc:string, languageId: string}[] = [];

который загружен в мой компонент вот так.

<button mat-fab color="warn" class="center" (click)="translate()">
</button>
<ul class="list-group" cdkDropList (cdkDropListDropped)="drop($event)">
  <li *ngFor="let language of languages" cdkDrag #languagesElement >
    <div class="row">
      {{ language.languageId }}
      <h1 class="col text-left language-description"> {{ language.languageDesc | uppercase }} </h1>
      <textarea md-maxlength="150" rows="5" md-select-on-focus
        class="textarea" >  </textarea>
    </div>
  </li>
</ul>

Когда я нажимаю кнопку перевода, мне нужно преобразовать список в список объектов. Примерно так для каждого элемента в ul:

{
 languageDesc: desc1El,
 languageId: id1El,
 textAreaValue: textarea1El
},
{
 languageDesc: desc2El
 languageId: id2El,
 textAreaValue: textarea2El
},
...

Мне удалось получить массив элементов li с помощью ViewChildren и преобразовать его в массив.

@ViewChildren('languagesElement') list: any;

let rows: [] = this.list.toArray();

и я знаю, что могу сделать что-то подобное, чтобы получить данные

rows[0].nativeElement.children[0].children[0]...

но этот метод немного опасен и настолько слаб против модификаций.

Итак, мой вопрос. Есть ли способ получить элемент по шаблону внутри другого элемента? Я имею в виду, например, установить шаблон #textarea в текстовой области и сделать что-то вроде

row[0].getChildElement(#textarea)

0 ответов

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