2017-05-26 130 views
0

发生了一个不寻常的JavaScript错误可以帮助我解决这个问题吗?这是我的全部功能未捕获的类型错误

$scope.getAllSubMilestones = function() { 
    if (typeof $scope.subMilestones == 'undefined' || $scope.subMilestones.length < 0 || $scope.subMilestones == '') { 
     // the array is defined and has at least one element 
     var URL = $window.sessionStorage.getItem('HOST_URL') + '/subMilestoneFormObjs'; 

     function onSuccess(response) { 
      $scope.subMilestones = response.data; 
      pu_ws_counter++; 
      setTimeout(function() { 

       for (var i = 0; i < $scope.subMilestones.length; i++) { 
        var sub_milestone = $scope.subMilestones[i]; 

         for(var k = 0; k < $scope.project.projectMileStones.length; k++) { 
          var pm = $scope.project.projectMileStones[k]; 
          var selected_sub_milestone = pm.projectSubMileStones; 

         for (var j = 0; j < selected_sub_milestone.length; j++) { 
          var s = selected_sub_milestone[j]; 
          if (sub_milestone.id == s.subMilestone.id) { 
           //document.getElementById('#' + sub_milestone.id).checked = true; 
           //            $('#' + sub_milestone.id).prop('checked', true); 
           $('#' + sub_milestone.id).click(); 
          } 
         } 
         } 
        } 

      }, 1000); 
      $("#mydiv").hide(); 

     }; 

线示值误差为

for(var k = 0; k < $scope.project.projectMileStones.length; k++)

错误说

Uncaught TypeError: Cannot read property 'length' of undefined

+0

什么是'$ scope.project.projectMileStones'?它可能没有设置。 – rishipuri

回答

0

if (typeof $scope.subMilestones == 'undefined' || $scope.subMilestones.length < 0 || $scope.subMilestones == '') {回报true如果$scope.subMilestonesundefined,但下面的评论指出,如果应该返回true,如果它已被定义。请尝试更改if声明如下:

if (!(typeof $scope.subMilestones == 'undefined' || $scope.subMilestones.length < 0 || $scope.subMilestones == '')) {

让我们知道是否可行!

+0

没有什么改变! –

0

尝试在控制台中打印$ scope.project.projectMileStones。 对象$ scope.project没有projectMileStones属性或projectMileStones不是类型数组很有可能。

+0

它是一个数组,它向我展示了其中的对象 –