Решение для связи между одноуровневыми компонентами:
Вы должны вызывать @ViewChild только в файле TS того же компонента, а не в другом компоненте.
Итак, в HomeComponentшаблон, мы помещаем идентификатор (#anchor
) в <app-anchor>
, затем привязываем его к члену HeaderComponent @Input.
Теперь вы можете получить доступ ко всем членам AnchorComponent в HeaderComponent.
Решение -
HomeComponent
<app-header [anchorComponent]="anchor"></app-header>
<app-anchor #anchor></app-anchor>
HeaderComponent :
TS:
@input() anchorComponent:AnchorComponent ;
scrollToElement(): void {
//This is how to reach to your div#target
console.log(this.anchorComponent.target);
...
}
AnchorComponent
HTML:
<div #target>My target</div>
TS:
@ViewChild('target', { read: ViewContainerRef }) target;