私は2つのボタンを備えたナビゲーションバーを持っています。他のページのボタンだけを表示し、現在のページのボタンを無効にします。角2 * ngモデルチェンジ時の再評価がありません
設定ページを開くと、設定ボタンが非表示になります。プロファイルボタンをクリックすると無効にならず、設定ボタンが表示されません。
export class SettingsComponent implements OnInit {
isSettingsProfile = false;
isSettingsHome = false;
ngOnInit() {
this.isSettingsHome = true;
this.isSettingsProfile = false;
}
OnNavBarClick(button: string) {
if (button = "settings") {
console.log ('setting home true/ profile false')
this.isSettingsHome = true;
this.isSettingsProfile = false;
}
else if (button = "profiles") {
console.log ('setting home false/ profile true')
this.isSettingsProfile = true;
this.isSettingsHome = false;
}
}
そして、ナビゲーションバーのHTML::
ここでコンポーネントクラスのコードです
<ul class="nav navbar-nav navbar-right">
<li> <a [routerLink]="['/home']" href="#">Home</a></li>
<li *ngIf="!isSettingsHome" class="active"><a [routerLink]="['/settings']" href="#" (click)="OnNavBarClick('settings')">Settings</a></li>
<li *ngIf="!isSettingsProfile"><a [routerLink]="['/settings/profile']" href="#" (click)="OnNavBarClick('profile')">Profile</a></li>
</ul>
任意の提案ですか?
@GünterZöchbauerが正しいです、あなたは余分な引用符を持っています。しかし、コードを渡したときにそれが単なる型だった場合、別の解決策があるかもしれません。 'return this.isSettingsHome;' – Jwags
'if(button =" settings ")'は 'if(button ===" settings ")にする必要があります、あなたのAngularJSクラスの関数を呼び出すことができます。 '。 –