angular - Angular11 路由和滚动到锚点
问题描述
大家好,我是 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 版本却没有。做这种事情的最好方法是什么?
无论如何,我认为我的 Angular 架构是错误的.. 也许router-outlet
应该包含整个页面,并且在部分中我将不得不放置一些东西*ngIf
来查看是否有数据要显示?
谢谢
解决方案
推荐阅读
- java - 减少列表
使用 BiFunction > - ios - 何时设置更改 heightForRowAt UITableView 动画被破坏
- sql - 根据定义的月份和阈值比较并获取插入到表中的新数据
- apache - 使用 .htaccess 从许多子域重定向 URL
- xml - 如何根据条件在字段前添加标签
- python-3.x - 致命错误 LNK1181:无法打开输入文件 'imagehlp.lib' 安装 cx_Freeze
- push-notification - 在 willPresentNotification 中修改推送通知生成器
- dns - Pod 不通过 ingress 解析服务的域名
- laravel - Redis缓存标签刷新内存泄漏
- php - PHP - 两个服务器登录:localhost / localhost:3306 - 控制用户无权访问