Il y a au moins deux options. Subject and Observable
ou si ce composant another
est un parent, vous pouvez utiliser .
méthode Subject and Observable
:
angular guide Hautement recommandé de lire la page entière.
Certains composants
export class SomeComponent {
constructor(private ClassService: ClassService) { }
private changeClass(class) {
this.ClassService.changeClass(class);
}
}
Une autre composante
export class AnotherComponent implements OnInit, OnDestroy {
constructor(private ClassService: ClassService) { }
private class: string = "";
private subscribtion: Subscribtion;
ngOnInit(): void {
this.Subscribtion = this.ClassService.someClass$.subscribe(
(class) => { this.class = class; }
)
}
ngOnDestroy(): void {
this.Subscribtion.unsubscribe();
}
}
service
@Injectable();
export class ClassService{
constructor() { }
private someClassSource= new Subject<string>();
someClass$= this.someClassSource.asObservable();
changeClass(class) {
this.someClassSource.next(class);
}
}
pris de mon answer
méthode @Input
:
angular guide
Ceci est très simple, lorsque vous cliquez sur le bouton méthode changeClass
changera elClass
qui sera passé à another component
par @Input
décorateur, chaque changement de @Input
provoquera une détection les modifications qui vont détecter cette valeur ont changé, donc la classe passera à myClass
.
composant parent
parent.component.html
<another-component [elementClass]="elClass"></another-component>
<button (click)="changeClass('myClass')">change class<button>
parent.component.ts
export class ParentComponnet {
private elClass: string = "";
changeClass(class: string) {
elClass = class;
}
}
Un autre composant (doit être composant enfant)
another.component.html
<div [ngClass]="elementClass">
another.component.ts
export class AnotherComponent {
@Input() elementClass: string;
}
Il y a aussi des enfants à l'interaction des parents par l'intermédiaire @Output
(événement émettant) angular guide
Qu'est-ce que "un autre composant". Veuillez fournir le code (TS + HTML) qui montre comment les composants sont liés. –
Copie possible de [Modification d'une valeur dans deux composants différents en même temps Angular 2] (https://stackoverflow.com/questions/41771511/changing-a-value-in-two-different-components-at-the- même temps-angulaire-2) –