angular2 получить elementRef компонента, который не является дочерним
В моем приложении у меня есть следующая структура:
<fin-header></fin-header>
<main></main>
<fin-footer></fin-footer>
В заголовке я хочу добавить прокрутку к определенному компоненту main
, Мой метод прокрутки принимает в качестве аргумента elementRef
, Но я не могу получить один по @ViewChild
потому что компоненты main
не дети заголовка.
Есть ли шанс получить elementRef
компонента, который не является дочерним?
2 ответа
Возможно, вы могли бы немного изменить свою структуру и встроить свои компоненты в родительский. Что-то вроде:
<parent>
<fin-header [elementRef]="mainRef"></fin-header>
<main></main>
<fin-footer></fin-footer>
<parent>
Таким образом родитель может передать ссылку своего дочернего элемента (main) другому дочернему элементу (header).
Вы можете получить main
elementRef и использовать nativeElement.parentElement
чтобы получить родителя и сделать еще один запрос на DOM от родителя. например, если структура выглядит примерно так:
<div>
<fin-header></fin-header>
<main></main>
<fin-footer></fin-footer>
</div>
Получение main
"s elementRef
nativeElement.parentElement
будет div. и, конечно же, div.querySelectorAll
будет иметь всех детей div.