変更プロパティのルートコンポーネントにアクセスする方法を教えてください。角4:ルートコンポーネントへのアクセス
問題:
が、私は違いテンプレート(デフォルトおよびカスタムページ用)を持っており、これらのテンプレートは異なる構造を有しています。私は、コントロールがルートコンポーネント(AppComponent)のクラスのカスタムパラメータを介してプロセスをレンダリングするようにします。一例として、
:
app.component.html:
<div>
<div id="wrapper">
<div *ngIf="!customPage">
<div id="page-wrapper">
<div class="container-fluid">
<router-outlet></router-outlet>
</div>
</div>
</div>
<div *ngIf="customPage">
<router-outlet></router-outlet>
</div>
</div>
</div>
app.component.ts:
export class AppComponent{
customPage: boolean;
constructor() {
this.customPage = false;
}
}
そして私はカスタムからアクセスしようページ.ts:
export class CustomComponent implements AfterViewChecked {
constructor(private rootComponent: AppComponent) {
}
ngAfterViewChecked(): void {
this.rootComponent.customPage = true;
}
}
しかし、私はエラーを取得:
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'true'. Current value: 'false'.
私は他のライフサイクルイベントを使用しようとするが、すべてのイベントで、私はこのエラーを取得します。
そして、私はこの解決策が良くないと思います。 Angular2にこの問題の解決策があるのでしょうか?
はありがとうございました。
の可能性のある重複した[角度2 - 負荷共有サービス]を(https://stackoverflow.com/questions/45443908/angular-2-share-service-on-load)あなたが使用できる –
'[隠れて] ''の代わりに '* ngIf'を使用します –