Je ne suis pas sûr que vous pouvez le faire à l'intégrité physique ou html, mais vous pouvez le faire au composant racine.
- Créer un service injecté au composant racine
- Que le service un état (peut être
BehaviorSubject
)
- Access service et changer l'état quand
isModalOpened
est changé
- Dans le composant racine, vous allez Observez ceci et modifiez les valeurs des paramètres de composant
- À l'intérieur du composant racine html, vous pouvez modifier les valeurs de classe en fonction des valeurs de paramètres de composant
Mise à jour: Définition de la couleur d'arrière-plan à partir d'un composant interne.
app.component.css
.red{
background: red;
}
.white{
background: white;
}
.green{
background: green;
}
app.component.html
<div [ngClass]="backgroundColor" ></div>
app.component.ts
constructor(private statusService: StatusService) {
this.subscription = this.statusService.getColor()
.subscribe(color => { this.backgroundColor = color; });
}
status.service.ts
private color = new Subject<any>();
public setColor(newColor){
this.color.next(newColor);
}
public getColor(){
return this.color.asObservable();
}
child.component.ts
export class ChildComponent {
constructor(private statusService: StatusService) {}
setColor(color:string){
this.statusService.setColor(color);
}
}
Donc, chaque fois que nous appelons setColor et passer une variable couleur comme 'rouge', 'vert' ou 'blanc' l'arrière-plan du composant racine change en conséquence.
Jetez un oeil à NgClass https://angular.io/api/common/NgClass –
@YakovFain Dans mon cas, je ne peux pas accéder à le corps. Donc je ne peux pas ajouter l'attribut ng-class. – Steffi