在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。在所有其他組件上,我想保留其他兩個類,而不是「透明」。
應該更好說明組件結構可以在下面的圖片中可以看出一個層次:
所以,家庭成分是不是父母,但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上,而不是在其他組件上,我希望這個頭文件具有「透明」類。家庭組件與其他組件無關。 –
我會立即更新以提供更多信息 –