ちょっと私はクリックで明らかにis-active
クラスを取得し、そのクラスはクリックに応じてトグルするハンバーガーメニューを持っています、私の問題は私が私のホームページにいるとき、 routerLink
で別のページをクリックすると2番目のページに移動しますが、2番目のページをクリックすると、is-active
がプログラムで削除されますが、再度クリックするとクラスが追加されませんis-active
is-active
が適用されます...これは、家にいないページでIveを起動した場合にも発生します。何も起こらないハンバーガーをクリックしてください。再度クリックすると、is-active
クラスが適用されます。誰でも知っていると、大きな助けになるでしょうクラストグルはコンポーネント間で動作しません角度4
app.component.html
<router-outlet></router-outlet>
<div class="nav-page">
<a routerLink="/"><img class="img" src="../assets/img/nav-logo.svg" /></a>
<ul (click)="navLinkClick()" class="nav-page_ul">
<a [routerLink]="['who-we-are']"><li>who we are</li></a>
<a [routerLink]="['our-technology']"><li>our technology</li></a>
<a [routerLink]="['our-work']"><li>our work</li></a>
<a [routerLin]k="['get-in-touch']"><li>contact us</li></a>
</ul>
</div>
<div class="nav-page-btn">
<div (click)="hamburgerClick()" [ngClass]="wasClicked ? 'is-active' : ' '" class="hamburger hamburger--spring">
<div class="hamburger-box">
<div class="hamburger-inner"></div>
</div>
</div>
</div>
app.component.ts
import { Component, OnInit } from '@angular/core';
import { Router, Event, NavigationStart } from '@angular/router';
import { NgIf } from '@angular/common';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
routeHidden = true;
title = 'app';
wasClicked = false;
constructor(private router: Router)
// tslint:disable-next-line:one-line
{}
// tslint:disable-next-line:use-life-cycle-interface
ngOnInit() { }
hamburgerClick() {
this.wasClicked = !this.wasClicked;
}
navLinkClick() {
this.wasClicked = !this.wasClicked;
}
}
UPDATE
だから、何が起こっている奇妙な何かが..です
(click)="hamburgerClick()"
を削除すると、ホームページ以外のすべてのページでボタンが正常に動作しますが、明らかにホームページ上でボタンが機能していることを確認してから、機能を使用してナビを開きます。
こんにちは、チップのおかげだが、それは非常に奇妙な問題を解決していない – A61NN5
心配なし。それは変だ。あなたのupvoteに感謝します。 –