我正在制作角度应用程序,我正在使用路由和身份验证保护..
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-10 col-md-8 col-sm-offset-1 col-md-offset-2">
<ul class="nav nav-tabs">
<li role="presentation" routerLinkActive="active"
[routerLinkActiveOptions]="{exact:true}"><a routerLink="/">Home</a></li>
<li role="presentation" routerLinkActive="active"><a routerLink="/servers">Servers</a></li>
<div *ngIf="showUser">
<li role="presentation" routerLinkActive="active"><a routerLink="/users">Users</a></li>
</div>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-10 col-md-8 col-sm-offset-1 col-md-offset-2">
<router-outlet></router-outlet>
</div>
</div>
在上面的代码中,我做了一个if条件,
<div *ngIf="showUser">
<li role="presentation" routerLinkActive="active"><a routerLink="/users">Users</a></li>
</div>
显示如果showUser
为假,则他无法查看主页中的用户选项卡..
TS:
export class AppComponent{
showUser : boolean = true;
ngOnInit() {
this.showUser = false;
}
}
在这里我硬编码this.showUser
为假,而在实际应用中,它将基于某些条件,例如,
ngOnInit() {
let user = this.localStorage.getItem('user');
if(user.value == null || user.value == undefined) {
this.showUser = false;
}
}
因此条件为假,因此用户菜单未显示在视图中..
但是,如果我更改网址,例如
https://routing-angular-bjbjqd.stackblitz.io/users
仔细看我最后添加了用户..上面是重定向到用户页面..
我的要求是它不应该发生。
因为除非条件为真,否则它不应该被重定向到用户页面。
showUser
除非是真的,否则如何防止网址更改?