Отслеживает ли QueryList внутренние HTML изменения элементов? - PullRequest
1 голос
/ 05 марта 2020

Мне было интересно, какие изменения отслеживает QueryList? Например, следующий код не console.log при изменениях. Означает ли это, что changes будет запущен, только если ElementRef был добавлен / удален? Спасибо (и извините за довольно простой c вопрос).

import { Component, OnInit, ViewChildren, QueryList, ElementRef, AfterViewInit } from '@angular/core';


@Component({
  selector: 'my-app',
  template: `<div>
      <div #header>header</div>
      <div #cell>{{name}}</div> 
    </div>`,
  styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit, AfterViewInit {
  @ViewChildren('cell', { read: ElementRef}) cells: QueryList<ElementRef>;
  name = 'Angular';
  ngOnInit () {
    setTimeout(() => this.name = 'cell2', 5000);
  }
  ngAfterViewInit () {
    this.cells.changes.subscribe(() => console.log('component changes'));
  }
}

1 Ответ

0 голосов
/ 05 марта 2020

Как уже упоминалось в этой статье от Netanel Basal, наблюдаемая QueryList.changes выдает значение, когда элементы добавляются, удаляются или перемещаются в списке:

QueryList

изменения () - Изменения можно наблюдать, подписавшись на изменения Наблюдаемые. Каждый раз, когда дочерний элемент добавляется, удаляется или перемещается, список запросов будет обновляться, и наблюдаемые изменения в списке запросов будут выдавать новое значение.

Изменение свойств элемента список не должен вызывать наблюдаемую QueryList.changes, как вы уже заметили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...