λ΄ angular cli 4.0 μ±μΌλ‘ angular2-signature-pad λͺ¨λμ κ°μ Έμμ΅λλ€. https://github.com/dimpu/angular2-signature-pad μ μ§μΉ¨μ λ°λΌ μ λͺ¨λλ‘ κ°μ Έμμ΅λλ€(μ± λͺ¨λ μλ). μ΄λ₯Ό ν΅ν΄ μλͺ ν¨λ μΊλ²μ€κ° μλ²½νκ² λ λλ§λ©λλ€. λΆννλ λ€μ μ€λ₯κ° λ°μνκ³ μμλλ‘ μλνμ§ μμ΅λλ€.
ERROR TypeError: __WEBPACK_IMPORTED_MODULE_1_signature_pad__ is not a constructor
at SignaturePadComponent.ngAfterViewInit (signature-pad.component.js:60)
at callProviderLifecycles (core.js:12702)
at callElementProvidersLifecycles (core.js:12669)
at callLifecycleHooksChildrenFirst (core.js:12652)
at checkAndUpdateView (core.js:13807)
at callViewAction (core.js:14149)
at execEmbeddedViewsAction (core.js:14107)
at checkAndUpdateView (core.js:13799)
at callViewAction (core.js:14149)
at execComponentViewsAction (core.js:14081)
SignaturePad μ΄κΈ°νμ λ¬Έμ κ° μμ΅λκΉ?
μλͺ ν¨λ κ΅¬μ± μμμ λ λ²μ§Έ μ€μμ μ€λ₯κ° λ°μν©λλ€.
SignaturePadComponent.prototype.ngAfterViewInit = function () {
this._canvas = this._el.nativeElement.querySelector("canvas");
this._signaturePad = new SignaturePad(this._canvas);
};
"κ°λ/cli": "1.6.8"
"angular2-signature-pad": "^1.0.2"
"signature_pad": "^2.3.2"
Angular CLIκ° μλ Google Chromeμμ
μ΄ λΌμ΄λΈλ¬λ¦¬μ Angular λ²μ μ μ μ§ κ΄λ¦¬νμ§ μμ΅λλ€.
μ€μ λ‘ SignaturePad
κ° μλμ§ νμΈν μ μμ΅λλ€. μ€μ μμ±μμΈ default
μμ±μ΄ μλ κ°μ²΄μΌ μ μμΌλ―λ‘ this._signaturePad = new SignaturePad.default(this._canvas);
λ‘ λ³κ²½νλ©΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. , νμ§λ§ κ·Έκ²μ μΆμΈ‘μΌ λΏμ
λλ€.
μ¬μ© μ€μΈ TypeScriptμ λ²μ μ νμΈν μ μμ΅λκΉ? TS 2.7+μμ μ΄ λΌμ΄λΈλ¬λ¦¬(Angular λΌμ΄λΈλ¬λ¦¬κ° μλ)λ₯Ό νμΈνλλ° μ λλ‘ μλν©λλ€.
TSλ‘ μμ±λμμΌλ©° TS 2.7+μμ μλν΄μΌ νλ signature_pad λ² ν 릴리μ€λ μμ΅λλ€.
μ, this._signaturePad = new SignaturePad.default(this._canvas);
μ ν¨κ» μλν©λλ€.
szimek κ°μ¬ν©λλ€.
@erangaapp @szimek μ¬λ¬λΆ new SignaturePad
μ μ§λ΄μΈμ? μμ
νλ κ²μ΄ μμ΅λκΉ? λλ λν https://github.com/dimpu/angular2-signature-pad λ₯Ό μ¬μ©νκ³ μμ΅λλ€.
signature_padμμ κ°μ Έμ¬ μ μμ΅λλ€.
npm install --save signature_pad
import * as SignaturePad from 'signature_pad';
@erangaapp λλΆμ μμμ΅λλ€. λ λ€λ₯Έ μ§λ¬Έμ
λλ€. νλ‘μ νΈμ node_modules
μμ λΌμΈμ this._signaturePad = new SignaturePad.default(this._canvas);
λ‘ λ³κ²½νμ
¨μ΅λκΉ? lib μ½λ μ체 λ΄λΆ? μλλ©΄ νλ‘μ νΈ μ½λμμ ν μ μμ΅λκΉ?
λλ μλλ₯Ό ν΅ν΄ κ·Έκ²μ μ»μλ€.
window.SignaturePad = require('signature_pad').default
this._signaturePad = new SignaturePad.default(this._canvas);
μ΄κ²μ΄ λλ₯Ό μν΄ μΌν μ μΌν κ²μ΄μλ€
μ΄κ²μ΄ λꡬμκ²λ λμμ΄ λλ κ²½μ°λ₯Ό λλΉνμ¬ Angular 8μμ μλͺ ν¨λλ₯Ό μλμν€κΈ° μν΄ μνν μμ μ λ€μκ³Ό κ°μ΅λλ€.
$ npm install --signature_pad μ μ₯
λ©μ§ κ΅¬μ± μμ.html:
<div class="wrapper">
<canvas id="signature-pad" class="signature-pad" width=400 height=200 style="border: 2px solid blue"></canvas>
</div>
λ©μ§ κ΅¬μ± μμ.ts:
import { Component, OnInit, ElementRef } from '@angular/core';
import * as SignaturePad from 'signature_pad'
...
export class CoolComponent implements OnInit {
_canvas
_signaturePad
constructor(private el: ElementRef) { }
ngOnInit() {
}
ngAfterViewInit(){
this._canvas = this.el.nativeElement.querySelector("canvas");
this._signaturePad = new SignaturePad.default(this._canvas);
}
}
μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¨κ» λ§λ€μ΄ μ£Όμ μ κ°μ¬ν©λλ€, @szimek!
κ°μ₯ μ μ©ν λκΈ
μ΄ λΌμ΄λΈλ¬λ¦¬μ Angular λ²μ μ μ μ§ κ΄λ¦¬νμ§ μμ΅λλ€.
μ€μ λ‘
SignaturePad
κ° μλμ§ νμΈν μ μμ΅λλ€. μ€μ μμ±μμΈdefault
μμ±μ΄ μλ κ°μ²΄μΌ μ μμΌλ―λ‘this._signaturePad = new SignaturePad.default(this._canvas);
λ‘ λ³κ²½νλ©΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. , νμ§λ§ κ·Έκ²μ μΆμΈ‘μΌ λΏμ λλ€.μ¬μ© μ€μΈ TypeScriptμ λ²μ μ νμΈν μ μμ΅λκΉ? TS 2.7+μμ μ΄ λΌμ΄λΈλ¬λ¦¬(Angular λΌμ΄λΈλ¬λ¦¬κ° μλ)λ₯Ό νμΈνλλ° μ λλ‘ μλν©λλ€.
TSλ‘ μμ±λμμΌλ©° TS 2.7+μμ μλν΄μΌ νλ signature_pad λ² ν 릴리μ€λ μμ΅λλ€.