0

我是混合应用程序的新手,并使用 Ionic 框架开发应用程序,我想在其中实现多个签名板ng-repeat。画布以定义的 css 规范显示。但是,签名的绘图不起作用。

签名.html

 <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>

控制器.js

$scope.createSigPad=function(index){

     // alert(document.getElementById('canvas'+index).id);
     new SignaturePad(document.getElementById('canvas'+index));

}

在 Logcat 我看到行TypeError: Cannot call method 'getContext' of null

注意:当我在外部尝试单个签名板时,它工作正常ng-repeat

请帮我找到解决方案。

4

1 回答 1

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);

}

通过这种方式,您可以获得元素目标

于 2016-01-04T07:34:33.543 回答