(アプリケーションのメイン1)私が持っている:各子コンポーネントから親コンポーネントの要素クラスを設定するにはどうすればよいですか? app.componentで
<div id="wrapper">
<!-- Header
================================================== -->
<header class="transparent sticky-header full-width">
.
.
.
<div class='container-fluid'>
<div class='row'>
<div class='col-sm-3'>
<nav-menu></nav-menu>
</div>
<div class='col-sm-9 body-content'>
<flash-messages></flash-messages>
<ng2-toasty></ng2-toasty>
<router-outlet></router-outlet>
</div>
</div>
</div>
.
.
.
私はヘッダーのみhome.componentに「透明」クラスを維持したいです。他のすべてのコンポーネントで、私は他の2つのクラスを "透過的"に保ちたい。
コンポーネントが構成されている方法をよりよく説明しなければならない階層下の画像で見ることができます。
ので、自宅のコンポーネントは、親ではありませんが、app.componentは、親です。 home.componentは他の子と同じように子です。
app.component.ts
import { Component, ErrorHandler } from '@angular/core';
import { ToastyService } from "ng2-toasty";
import { AppErrorHandler } from "../../app.error-handler";
import { HomeComponent } from "../home/home.component";
import { ActivatedRoute, Router } from "@angular/router";
@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [
HomeComponent,
ToastyService,
{ provide: ErrorHandler, useClass: AppErrorHandler }
]
})
export class AppComponent {
classes: string;
constructor(private home: HomeComponent, private route: ActivatedRoute,
private router: Router) {
//this.classes = false;
//if (this.router.url ==='/home')
//{
// this.classes = true;
//}
this.classes = "transparent sticky- header full- width";
}
}
私は、変数のクラスを作り、ngClassでそれを渡すことを試みたが、それは動作しません。
私は解決策を探しており、私が見つけたのはイベントに基づいていました。
もう少し情報が参考になります。あなたの他のコンポーネントは、このホームコンポーネントの子コンポーネント(セレクタを介してホームコンポーネントに埋め込まれています)または子ルート(ホームコンポーネントは子コンポーネント用のルーターコンセントを含む)ですか、まったく関係のないコンポーネントですか? – DeborahK
すべてのコンポーネントには、app.componentというヘッダーがあります。私がhome.component上にいて、他のコンポーネントではないなら、このヘッダーを "透過的"なクラスにしたいと思っています。家のコンポーネントは他のコンポーネントとは関係ありません。 –
詳細情報を提供するように更新します –