2014-10-01 84 views
-1

我在計算數組中的總數時遇到了麻煩。當一個新值被添加到數組中時,總數應該在視圖上更新,但我得到一個未定義的錯誤。計算數組中的總數

var bowlingApp = angular.module('bowlingApp', []); 


//Add bowling points to score 
    bowlingApp.controller('bowlPoints', function ($scope){ 
    $scope.bowlPoints = [] 


    $scope.addBowlPoints = function() { 

     if ($scope.bowlPoints.length < 10) { 
      $scope.bowlPoints.push($scope.enteredPoints); 
     } 
     else { 
      alert("Thanks for playing"); 
     } 
    }; 

    $scope.total = function() { 
    var total = 0; 
    if (scope.bowlPoints < 300) { 

    for(var i=0; i < $scope.bowlPoints.length; i++) { 
     total += $scope.bowlPoints[i].amount; 
    } 
    return total; 

    }; 
    }; 
}); 
+0

什麼類型的對象「enteredPoints」是?陣列?或單個對象,如{amount:...} – jevgenig 2014-10-01 14:16:02

+0

同意,如果'$ scope.enteredPoints'沒有'amount'屬性,那麼'$ scope.bowlPoints [i] .amount'會給你錯誤。另外,什麼是'$ scope.bowlPoints(null);'在做什麼? – erdomke 2014-10-01 14:17:45

+0

'scope.bowlPoints'不應該是'$ scope.bowlPoints'? – Hacketo 2014-10-01 14:19:56

回答

0

什麼是

if (scope.bowlPoints < 300) { 

是有可能得到這種間接方式值或數組的長度,不就可以加入。長度? 這裏jsbin example ofcourse無棱角,只有javascript。 Mayby它可以幫助你;-)

1

如果您在Chrome控制檯中單擊錯誤消息,就像在Chrome中一樣,您應該能夠準確查看錯誤發生的位置。

未定義的錯誤通常是嘗試訪問本身未定義的對象的屬性的結果。例如,erdomke說,如果$scope.enteredPoints沒有財產數量,那麼$scope.bowlPoints[i].amount會給你一個未定義的錯誤。

希望這會有所幫助。我真的推薦使用Web瀏覽器JavaScript控制檯來調試你的代碼,它會讓事情變得更容易。