2017-05-26 2 views
0

Ein ungewöhnlicher Javascript-Fehler aufgetreten Kann mir jemand helfen, dieses Problem zu lösen? Das ist meine ganze FunktionUncaught typeError

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

     }; 

Die Linie zeigt Fehler

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

Fehler ist, sagt

Uncaught TypeError: Cannot read property 'length' of undefined

+0

Was ist '$ scope.project.projectMileStones'? Es ist wahrscheinlich nicht festgelegt. – rishipuri

Antwort

0

Ihre if (typeof $scope.subMilestones == 'undefined' || $scope.subMilestones.length < 0 || $scope.subMilestones == '') { kehrt true wenn $scope.subMilestones ist undefined, aber Ihr Kommentar unter die besagt, dass die Wenn true zurückgegeben werden soll, wenn es definiert ist .. Versuchen Sie, diezu ändern 0-Anweisung wie folgt zusammen:

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

Lassen Sie uns wissen, ob das funktioniert!

+0

nichts geändert! –

0

versuchen, $ scope.project.projectMileStones in der Konsole zu drucken. gibt es starke Chancen, dass das Objekt $ scope.project nicht projectMileStones Eigenschaft oder projectMileStones ist nicht Typ Array.

+0

es ein Array, es zeigt mir Objekt in ihm vorhanden –

Verwandte Themen