#angular #bootstrap-4 #routes #anchor
#angular #bootstrap-4 #маршруты #привязка
Вопрос:
Привет всем, я новичок в Angular,
Я использую AngularCLI
и версию Angular 11
. У меня есть простой Bootstrap 4
шаблон, и я хотел бы повторно использовать его для своего Angular 11
приложения.
Теперь шаблон выглядит примерно так:
<html>
<header>
....
<ul>
<li><a href="#contact">CONTACT</a></li>
<li>GROUP</li>
</ul>
</header>
<main>
<section id="group">
....................
</section>
<section id="contact>
....................
</section>
</main>
В шаблоне также есть .js
файл, который, когда пользователь нажимает на ссылку, плавно автоматически прокручивается до относительной привязки..
Теперь я помещаю его в Angular, и все работает хорошо, но теперь я хочу перенаправить на компонент, который будет заполнен данными, поступающими с сервера. Поэтому я пытаюсь написать:
<li><a href="#contact" (click)="scroll(contact)">CONTACT</a></li>
.....
.....
<section id="group">
..........
</section>
<section #contact id="contact>
<router-outlet></router-outlet>
</section>
В component.ts:
scroll(el: HTMLElement) {
el.scrollIntoView();
el.setAttribute("class", "active");
}
но не работает, потому что вызывающий компонент обновляет мою страницу, и я визуализирую первый раздел вместо второго.
Я гуглю, но есть множество возможных решений, и никто не подходит для моей версии Angular. каков наилучший способ сделать это?
В любом случае, я думаю, что моя угловая архитектура неверна.. может router-outlet
быть, он должен содержать всю страницу целиком, а в разделах мне нужно будет поместить что-то вроде *ngIf
, чтобы посмотреть, есть ли данные для отображения?
Спасибо
Комментарии:
1. вы импортировали RouterModule в свой модуль приложения?
2. Да, конечно, но маршрутизация работает, а автопрокрутка к привязке — нет! Если я вручную прокручу страницу вниз, я увижу вставку «Мой компонент» в нужном месте… но вызов обновит мою страницу, и страница вернется к верхнему заголовку
3. могу я попросить вас поместить свой код в stackblitz?
4. Да, конечно, я сделаю это как можно скорее. Я даже поставил стандартный шаблон начальной загрузки, чтобы показать результат, которого я хочу достичь