Ich habe eine Map-Komponente, auf der eine Videokomponente eingeblendet ist. Die Karte und die Videokomponente wechseln die Klassen, wenn auf das Video geklickt wird, sodass das Video mit dem Karteninset auf dem Bildschirm angezeigt wird.Angular 2 - Stop NgClass wird ständig aktualisiert
Mir Aktualisierung die Klasse beiden Komponenten NgClass, aber ich bemerkte die Klasse Abschnitt des Kartenelementes im Inspektoren Flimmern während meiner App in Chrome läuft.
Ich habe es überprüft, und es scheint, dass ngClass die Klasse von dem Moment an aktualisiert, in dem die App startet, obwohl keine Änderungen an der Komponente vorgenommen wurden. Ich möchte nur die Klasse ändern, wenn das Inset-Element angeklickt wird.
Ist das normales Verhalten? Kann ich etwas dagegen tun?
Hier ist mein HTML:
<map class="map" (click)="switchInset('map')" [ngClass]="setClass('map')"></map>
<app-video class="video" (click)="switchInset('video')" [ngClass]="setClass('video')"></app-video>
Und mein TS Code:
mapFullscreen: boolean = true;
switchInset(target: string) {
switch (target) {
case 'map':
if (!this.mapFullscreen) {
this.mapFullscreen = this.mapFullscreen ? false : true;
}
break;
case 'video':
if (this.mapFullscreen) {
this.mapFullscreen = this.mapFullscreen ? false : true;
}
break;
default:
break;
}
}
setClass(target: string) {
let classes = {};
switch (target) {
case 'map':
classes = {
inset: !this.mapFullscreen,
fullscreen: this.mapFullscreen
}
break;
case 'video':
classes = {
inset: this.mapFullscreen,
fullscreen: !this.mapFullscreen
}
break;
default:
break;
}
return classes;
}
, das perfekt funktioniert, danke! – HNipps