[英]How to Hide and Show Menu in Angular 2
当令牌为空时,我可以隐藏一些菜单,但是如果不刷新页面就无法做到这一点。
那就是我已经拥有的代码:
@Component({
selector: 'my-app',
template: `<h1>{{title}}</h1>
<div><h2>{{resultcooki}}</h2></div>
<nav>
<div *ngIf="token!=''">
<a [routerLink]="['/all']" routerLinkActive="active" >All</a>
<a [routerLink]="['/one']" >ONE</a>
<a [routerLink]="['/post']" >Post</a>
</div>
<a [routerLink]="['/login']" >Login</a>
</nav>
<router-outlet></router-outlet>`,
directives:[ROUTER_DIRECTIVES],
providers: [SymfonyService]
})
export class AppComponent {
title = 'Test';
token:string = this.getCookie("Cookie");
private getCookie(name: string) {
let ca: Array<string> = document.cookie.split(';');
let caLen: number = ca.length;
let cookieName = name + "=";
let c: string
for (let i: number = 0; i < caLen; i += 1) {
c = ca[i].replace(/^\s\+/g, "");
if (c.indexOf(cookieName) == 0) {
return c.substring(cookieName.length, c.length);
}
}
return "";
}
}
有什么帮助吗?
那是因为令牌在页面加载时初始化了它的值,这就是为什么需要刷新页面的原因。
我建议您添加一个函数来检查this.getCookie(“ Cookie”); 值,而不是直接检查令牌变量值。
尝试类似:
@Component({
selector: 'my-app',
template: `<h1>{{title}}</h1>
<div><h2>{{resultcooki}}</h2></div>
<nav>
<div *ngIf="showMenu()">
<a [routerLink]="['/all']" routerLinkActive="active" >All</a>
<a [routerLink]="['/one']" >ONE</a>
<a [routerLink]="['/post']" >Post</a>
</div>
<a [routerLink]="['/login']" >Login</a>
</nav>
<router-outlet></router-outlet>`,
directives:[ROUTER_DIRECTIVES],
providers: [SymfonyService]
})
export class AppComponent {
title = 'Test';
private getCookie(name: string) {
let ca: Array<string> = document.cookie.split(';');
let caLen: number = ca.length;
let cookieName = name + "=";
let c: string
for (let i: number = 0; i < caLen; i += 1) {
c = ca[i].replace(/^\s\+/g, "");
if (c.indexOf(cookieName) == 0) {
return c.substring(cookieName.length, c.length);
}
}
return "";
}
showMenu(){
return (this.getCookie("Cookie") != '');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.