#angular
#угловой
Вопрос:
Я включил прокрутку привязки в своем RouterModule. Мой сценарий приводит пользователя непосредственно к полю при переходе на новую страницу. По большей части это работает нормально. Однако проблема, с которой я сталкиваюсь, связана с полями, которые содержатся внутри *ngIf
логики. Эти поля не существуют сразу, поэтому логика прокрутки привязки не видит поле и никогда к нему не прокручивается.
Существует ли обходной путь для этого сценария?
RouterModule.forRoot(routes, {
scrollPositionRestoration: 'enabled',
anchorScrolling: 'enabled'
})
<input class="form-control" name="fieldAnchorTagHere" />
Комментарии:
1. Пожалуйста, покажите свой код
2. @MCMatan Я добавил некоторый код к своему вопросу. В этом не так много логики. Спасибо.
3. @RyanBuening именно ваша логика отсутствует. Вы показываете код, который работает. Где
*ngIf
? Что это на самом деле проверяет?4. @MCMatan — Извините, я выразился не очень ясно. Моя модель представления заполняется из вызова внутренней службы. На основе этих значений поля отображаются / скрываются. Поэтому мне нужно отложить прокрутку привязки до ее завершения. Я думаю, что у меня есть решение, и опубликовал ответ ниже. Спасибо.
Ответ №1:
Я смог добавить это в свою ngOnInit
после того, как моя модель представления была заполнена. Как только модель представления заполнена, отображаются необходимые поля и работает querySelector / scrollIntoView.
activatedRoute.fragment.subscribe((fragment: string) => {
if (fragment) {
const element = document.querySelector('[name=' fragment ']');
if (element) {
element.scrollIntoView();
}
}
});