javascript - 如何在 app.component 外使用带有路由器插座的 Angular 9 导航栏
问题描述
我是 angular 的初学者。我创建了一个导航栏,这是我在 app.component 中的代码
<nav class="navbar navbar-default">
<div class="container-fluid">
<div>
<a routerLink="/login">Login</a>
<a routerLink="/register">Register</a>
</div>
</div>
</nav>
<div>
<router-outlet></router-outlet>
</div>
这可以正常工作如下 单击日志记录时路由到日志记录组件
但是当我在路由中选择另一个组件时,导航栏仍然存在。所以我需要我的导航栏进行日志记录,并且只在我的 Home 组件中注册。当我路由其他组件时它不应该存在。我想如果我在里面写我的代码除了 app.component 之外的另一个组件它可以工作。但是我怎样才能使用路由器插座和另一个组件上的所有东西。请帮忙举个例子。我该如何实施?
解决方案
在 app.component.html 添加到
<nav *ngIf="isHomePage" class="navbar navbar-default"></nav>
在 app.component.ts -> ngOnInit()
this.router.events.subscribe(e => {
if (e instanceof RouterEvent) {
this.isHomePage = e.url.split('/').includes('home');
}
});
希望这会帮助你。
推荐阅读
- postgresql - docker 卷中“设备”和“挂载点”的含义
- javascript - 查找 console.log("%cText", "css:value") 的其他语法
- javascript - 从服务器接收数据到一个常规的 js 文件
- javascript - highchart使用ajax转php+mysql
- excel - 不要将一个 with/end with 包装成另一个 with/end with 语句
- amazon-dynamodb - 带有rockset和dynamodb的Grafana地图
- javascript - 如何在有限的时间内在 vanilla JS 中添加一个类?
- javascript - var username= '<%=Session["username"]%>' for access session value in javascript 不起作用
- spring-boot - Spring REST secure 仅删除拥有的(由应用程序最终用户创建的,ONLY)资源
- c - 如何制作可以不带参数调用的 __VA_ARGS__ 宏?