0
我有以下打字稿代码:隐藏菜单链接是真的还是假的
import { Component, OnInit } from '@angular/core';
import { AuthService } from '../services/auth.service';
@Component({
selector: 'app-header',
templateUrl: './header.component.html'
})
export class HeaderComponent implements OnInit {
constructor(private authService: AuthService) { }
ngOnInit() {
var isLoggedIn = false;
}
}
它具有以下HTML模板:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" [routerLink]="['/']">
Site Name
</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav pull-right">
<li routerLinkActive="active"><a [routerLink]="['/login']">Login</a></li>
<li routerLinkActive="active"><a [routerLink]="['/sign-up']">Sign Up</a></li>
<li routerLinkActive="active" *ngIf="isLoggedIn"><a [routerLink]="['/logout']">Logout</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
正如你可以看到,如果在最后一个菜单链接(注销)中,我使用*ngIf
来显示用户是否登录的链接。目前,我将这些值硬编码为假,如果我将其更改为true,则由于某种原因,链接仍然保持隐藏状态。
请注意,我正在学习Angular2。
谢谢,这似乎是工作,你能告诉我有什么区别是从ngOnInit以外,当它在里面吗? –
变量**创建/初始化**(例如使用var)函数内部的范围是该函数。这意味着它不能从函数外部访问。模板可以访问组件的作用域,只能看到在该组件中初始化的变量。通过移动它,我们将变量的范围从函数更改为组件。 另请注意,'var'的作用域限于一个函数,'let'和'const'仅限于任何块('{let initializedInBlock = 0}') –