为什么Angularjs讨厌我的while循环?

时间:2014-07-15 17:11:22

标签: angularjs jspdf

这是我第一次发帖,fyi。我正在尝试制作一个制作pdf文件的按钮。如果我只是添加简单文本,PDF按钮可以工作。此外,i<myData.length警报工作正常,但当代码到达while循环时,它会立即转到angularjs异常处理程序。有什么想法吗?

$scope.makePDF = function () {
    //window.alert($scope.myData.length);
    var doc = new jsPDF();
    doc.text(20, 30, "Table");
    var i = 0;
    window.alert(i < $scope.myData.length);
    while (i < $scope.myData.length) {
        window.alert(i < $scope.myData.length);
        doc.text(20, 40, $scope.myData[i]["pit"] + "-" + $scope.myData[i]["game"] + "-" + $scope.myData[i]["table"]);
        i++;
        var isTrue = i < scope.myData.length;
    }


    // Save the PDF
    doc.save('Test.pdf');


};

这是我得到的错误输出。说实话,我从中得不到多少。如果有人能从中理解更多,那将是很好的(同样,stackoverflow让我取出链接):

ReferenceError:未定义范围

   at Scope.$scope.makePDF 
    at angular.js:9943:21
    at angular.js:17611:17
    at Scope.$eval angular.js:11634:28
    at Scope.$apply angular.js:11734:23
    at HTMLButtonElement.<anonymous> angular.js:17610:21
    at HTMLButtonElement.jQuery.event.dispatch jquery-1.9.1.js:3074:9
    at HTMLButtonElement.elemData.handle jquery-1.9.1.js:2750:46 angular.js:9159
(anonymous function) angular.js:9159
(anonymous function) angular.js:6751
Scope.$apply angular.js:11736
(anonymous function) angular.js:17610
jQuery.event.dispatch jquery-1.9.1.js:3074
elemData.handle

1 个答案:

答案 0 :(得分:1)

在第一个站点,您似乎正在使用字符串值访问多维数组的第二维。不确定是否有效。

如果myData是一个对象数组,那么你需要像

这样的东西
myData[i].pit

如果是二维数组,则需要myData[i][j],其中i和j是基于零的索引器。