Angular JS - TypeError:无法调用方法' getContext'为null

时间:2016-01-04 07:29:17

标签: html angularjs cordova ionic-framework signaturepad

我是混合应用程序的新手,并使用Ionic框架开发应用程序,我希望在<Slider Minimum="0" Maximum="100" local:Extensions.ValueChangedCommand="{Binding ValueChangedCommand}"/> 内部实现多个签名板。使用定义的css规范显示画布。但是,签名不起作用。

signature.html

ng-repeat

controller.js

 <div   ng-repeat="esign in consent" > 
 <div ><!--Signature Pad -->
    <canvas  id="{{'canvas'+$index}}"  ng-init="createSigPad($index)" width='300' height='180'  style='border: 1px solid blue;'></canvas>
    <div class='button-bar'>
    <a class='button button-energized' >Clear</a>
    <a class='button button-balanced' >Save</a>
    </div>
    </div> 
    </div>

在Logcat中,我看到 TypeError:无法调用方法&#39; getContext&#39;为null

注意:当我尝试$scope.createSigPad=function(index){ // alert(document.getElementById('canvas'+index).id); new SignaturePad(document.getElementById('canvas'+index)); }

之外的单个签名板时,它工作正常

请帮我找到解决方案。

1 个答案:

答案 0 :(得分:0)

尝试将ng-init更改为ng-click以检查其是否正常工作,我需要等待ng-repeat完成然后调用createSigPad, 最好用指令做这件事。

你可以尝试这个选项: 你的HTML需要

<canvas  ng-init="createSigPad($event)" width='300' height='180'  style='border: 1px solid blue;'></canvas>

你的职能需要是:

$scope.createSigPad=function($event){

 new SignaturePad($event.currentTarget);

}

用这种方式获得元素目标