Website-Suche

angular - Wie man angular2-signaturepad in der Größe ändert


Ich muss die Breite des Unterschriftenfelds dynamisch ändern. Wie kann ich das tun?

<signature-pad class="signature w-50-p" id="sign_canvas" fxFlexAlign.xs="center"></signature-pad>

(angular2-signaturepad)

Antwort #1

html :

<signature-pad fxFlex="1 1 50" (window:resize)="resizeSignaturePad()"
                         class="signature" 
                         id="sign_canvas" fxFlexAlign.xs="center"></signature-pad>

ts :

resizeSignaturePad() {
    this.signaturePad.set('canvasWidth', document.getElementById("sign_canvas").offsetWidth);
    this.signaturePad.clear();
}

Antwort #2

Ich habe dies heute in Angular 11 implementiert. Diese Antwort baut auf Markomars Antwort auf. Hoffentlich erspart dies jemandem Kopfschmerzen. Kurz gesagt, ich musste die Canvas-Größe manuell mit der queryPad()-Methode einstellen wegen eines seltsamen Unterstrichs. Ich habe eine Template-Variable (#form) auf einem Element verwendet, dessen Größe mir gefiel, und AfterViewInit statt OnInit benutzt, damit es korrekt initialisiert wurde.

@ViewChild('form') formElement: ElementRef;

resizeSignature() {
    this.signature.queryPad()._canvas.width = this.formElement?.nativeElement.offsetWidth;
}

ngAfterViewInit(): void { this.resizeSignature(); }

Verwandte Artikel