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}') –