私は角度4を働いています。私はこのような私のアプリの基本的な構造を持っています。角度2 - コンポーネントのフラグ値を更新した後にHTMLをリフレッシュする方法は?
AppComponent.ts
<app-header></app-header>
<router-outlet ></router-outlet>
<app-footer></app-footer>
は今、私はhere.myメニューバーが一度だけ私のプロジェクトでロードheadrerコンポーネントであるという問題があります。私は実行時にいくつかのメニューバーの項目を変更したい。その目的のために私はheader.component.tsにフラグを設定している。
ここで、メニューbatを変更したいコンポーネントから、flagの値を設定するheadercomponent.tsの関数を呼び出します。私は正常に関数を呼び出すと、それはまた、フラグの値を更新します。 htmlは変更されませんでした。
ここに私のheadercomponent.tsフラグの値を設定する機能です。
setflag()
{
alert("sadads")
this.flag=true
console.log(this.flag)
this.ref.detectChanges();
this.ref.reattach();
}
、ここでHTMLは私が更新したいheadercomponentで一部です。
<ul class="dropdown-menu">
<li ><a [routerLink]="['/login']">Log in</a></li>
<li><a [routerLink]="['/register']">Sign up</a></li>
<li *ngIf="flag==true"><a [routerLink]="['/register']">Dashboard</a></li>
</ul>
とhomecomponent.tsから私はこのように、この関数を呼び出しています。
import {HeaderComponent} from "../header/header.component";
providers: [HeaderComponent]
constructor(private ref: ChangeDetectorRef,private comp: HeaderComponent) {
}
ngOnInit() {
this.comp.setflag();
}
これは、ヘッダーから関数を呼び出し、フラグの値を変更します。その値を変更してもhtmlの変更は呼び出されません。
どのようなボディでも、このシナリオではどのようにヘッダコンポーネントのhtmlを更新できますか? ご協力いただければ幸いです。
をしたい場合、コンポーネントは、パブリックメンバを持っている場合は、「ゲッター」と「セッター」を使用することができます。したがって、あなたのケースでは、HeaderComponentのpublic memberである "flag"を – happyZZR1400