Ich habe eine einfache Schaltfläche und eine Direktive Ich möchte den Stil der Schaltfläche zugreifen, fügen Sie MarginLeft mit einer onclick() -Funktion in der Direktive, es funktioniert nicht aber die CSS aus Konstruktor funktioniert Wie kann ich das mit einem Klick nutzen? bitte helfen:implementieren onclick() in benutzerdefinierte Direktive eckig 4
der Richtlinie:
import { Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[Bluecolored]'
})
export class BluecoloredDirective {
constructor(private element:ElementRef) {
console.log(element);
element.nativeElement.style.color="blue";
}
clicked(){
this.element.nativeElement.style.marginLeft=20;
console.log("marzi"+this.element.nativeElement.style.marginLeft);
}
}
dies die Vorlage:
@HostListener('onClick') onClick(){
this.element.nativeElement.style.marginLeft=20;
console.log("marzi"+this.element.nativeElement.style.marginLeft);
}
Auf diese Weise können remote:
<p Bluecolored>
new-fom works!
</p>
<h1 Bluecolored>Blue Colored</h1>
<button (click)="clicked()" Bluecolored>Click</button>
, aber ich möchte ein bestimmtes Element aus der Dom say a-Taste auswählen, Wie kann ich das tun? – user3368703
HostListener überwacht nur Ereignisse für das Element, an das die Direktive gebunden ist. –
Ich war zu spät, um meinen vorherigen Kommentar so zu bearbeiten, Wenn Sie mehrere Elemente auf den Klick einer Schaltfläche ändern möchten, sind Sie wahrscheinlich besser der Verwendung von Komponente und einer Variablen, die die Stile Ihres Elements steuern (oder eine Variable, die eine Klasse wechselt) . –