Проблема с прокруткой угловых привязок

#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();
            }
        }
    });