@anateixeira wrote:
I don’t know what I am doing wrong but I can’t figure out what’s wrong.
I am trying to get a basic64 img but the signaturepad is undefined lol. Why? I think I am doing everything right. I get the error
Cannot read property 'toDataURL' of undefined
The signature pad appears but when I try to get the image it’s undefined…
Here’s my code:
TS
` import { Component, ViewChild } from '@angular/core'; import { SignaturePad } from 'angular2-signaturepad/signature-pad'; import { Platform } from '@ionic/angular'; import { Router } from '@angular/router'; @Component({ selector: 'app-signature-pad', templateUrl: './signature-pad.page.html', styleUrls: ['./signature-pad.page.scss'], }) export class SignaturePadPage { @ViewChild(SignaturePad) signaturePad: SignaturePad; signature: string = ''; isDrawing = false; width: any; height: any; private signaturePadOptions: object = { minWidth: 2, canvasHeight: window.innerHeight / 3, canvasWidth: window.innerWidth / 1.2, backgroundColor: '#ffffff', penColor: '#000000', }; constructor(platform: Platform, private router: Router) { platform.ready().then((readySource) => { this.width = platform.width(); this.height = platform.height(); }); } canvasResize() { const canvas = document.querySelector('canvas'); this.signaturePad.set('minWidth', 1); this.signaturePad.set('canvasWidth', canvas.offsetWidth); this.signaturePad.set('canvasHeigth', canvas.offsetHeight); } drawComplete() { this.isDrawing = false; } drawStart() { this.isDrawing = true; } goToPage() { var sig_object: any = {'desc': history.state.data.desc_sigpad, 'signaturepad': this.signature}; this.router.navigate(['/pg'], { state: { data: { sigpad: sig_object}}}); } savePad() { this.signature = this.signaturePad.toDataURL(); this.goToPage(); this.signaturePad.clear(); } clearPad() { this.signaturePad.clear(); } }
HTML
<ion-header> <ion-toolbar color="primary"> <ion-buttons slot="start" defaultHref="/pg"> <ion-back-button></ion-back-button> </ion-buttons> <ion-title style="text-align: center">Signature</ion-title> </ion-toolbar> </ion-header> <ion-content> <div style="margin-top: 20%; padding: 0"> <ion-grid lines="none" style="margin-top: 50px"> <ion-row [ngClass]="{'drawing-active': isDrawing}"> <ion-col></ion-col> <ion-col style="border: 1px solid #000000; padding: 5px"> <signature-pad [options]="signaturePadOptions" (onBeginEvent)="drawStart()" (onEndEvent)="drawComplete()"></signature-pad> </ion-col> <ion-col></ion-col> </ion-row> <br> <ion-row> <ion-col></ion-col> <ion-col> <ion-button size="large" color="danger" expand="full" (click)="clearPad()">Clear</ion-button> </ion-col> <ion-col> <ion-button size="large" style="color: secondary" expand="full" (click)="savePad()">Save</ion-button> </ion-col> <ion-col></ion-col> </ion-row> </ion-grid> </div> </ion-content>
I would be very very thankful. Please help me.
Thank you
Posts: 1
Participants: 1