Угловая замена компонента - PullRequest
0 голосов
/ 15 ноября 2018

В одном случае данные отправляются из двух разных компонентов;скажем OneComponent и TwoComponent, и есть ResultComponent, которые получают эти данные через Input() декоратор.Кроме того, в ResultComponent данные объединяются с использованием интерфейса OnChanges:

  ngOnChanges(changes: SimpleChanges) {
    if (changes['dataFromCompTwo']) {
      this.dataFromComp = this.dataFromCompTwo;
    }
  }

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

STACKBLITZ => Я хотел бы показать Вот результат простоодин раз.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Это межкомпонентная связь.Вам следует использовать один из методов, описанных на этой странице документации Angular .

Я лично одобряю связь через службу , поскольку компоненты тогда вообще не связаны: связьметод не зависит от их включения в DOM, поэтому вы можете перемещать их по своему усмотрению, он не сломается.

0 голосов
/ 15 ноября 2018

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

  • changes.componentOne
  • changes.componentTwo

SimpleChanges имеет другое свойство, называемое firstChange, которое вы можете использовать, чтобы проверить, является ли это первое изменение, исходящее от этого конкретного компонента, такого как:

  • changes.componentOne.firstchange - это будет означать, что это первое изменениеотправлено компонентами
...