2014-09-30 47 views
1

我已經用不同的方式在這裏發佈了相同的問題SiganaturePad。現在我沒有想法來處理這種情況。 我正在使用$ ionicModal來填充SignaturePad,如下所示。

/*SignaturePad*/ 
    $ionicModal.fromTemplateUrl('templates/signature.html', { 
    scope: $scope, 
    animation: 'slide-in-up' 
    }).then(function(modal) { 
    $scope.modal = modal; 
    alert('sign 1'); 

    var canvas=angular.element("#signature-pad"); 
    siganturePad = new SignaturePad(canvas); 
    alert('sign'); 
    signaturePad.minWidth = 5; 
    signaturePad.maxWidth = 10; 
    signaturePad.penColor = "rgb(66, 133, 244)";  
    }); 
    $scope.openModal = function() { 
    $scope.modal.show();  
    }; 
    $scope.closeModal = function() { 
    $scope.modal.hide(); 
    }; 
    //Cleanup the modal when we're done with it! 
    $scope.$on('$destroy', function() { 
    $scope.modal.remove(); 
    }); 
    // Execute action on hide modal 
    $scope.$on('modal.hidden', function() { 
    // Execute action 
    }); 
    // Execute action on remove modal 
    $scope.$on('modal.removed', function() { 
    // Execute action 
    }); 
    $timeout($scope.openModal, 200); 

但是我得到錯誤,如「錯誤:[jqLit​​e:nosel]仰望通過選擇元素不被支持jqLit​​e參見:http://docs.angularjs.org/api/angular.element

我可以預測我是issue.that以錯誤的方式通過id訪問元素。爲此,請您建議如何訪問SiganaturePad以初始化和訪問$ ionicModal中的其子元素(清除並保存按鈕)。

+0

如果前角包括jQuery的它會使用它,而不是它的建成在jqlite實現中。 – 2014-10-01 00:02:00

+0

是啊,我試過了,但如果我使用jQuery之前的角js.the Angular js函數不工作。 – Thamilvanan 2014-10-01 06:01:38

回答

4

不幸的是,內置的jQuery Lite非常有限。幸運的是,通過ID查找元素是很容易的:

所以不是:

var canvas=angular.element("#signature-pad"); 

只是做:

var canvas=angular.element(document.getElementById("signature-pad")); 
+0

。感謝我試過你的解決方案,我檢查了canvas對象是由angular.isUndefined(canvas)定義的,它返回false。 – Thamilvanan 2014-10-01 06:07:33

+0

我的另一個查詢是,我如何訪問我的其他元素var canvas = angular.element(document.getElementById(「signature-pad」)), clearButton = angular.element(canvas.querySelector(「[data-action = clear ]「)); – Thamilvanan 2014-10-01 06:13:50

+0

這應該是工作,在這種情況下發生了什麼? – 2014-10-01 16:16:30