2016-08-31 72 views
1

我正在構建一個AngularJS的反饋表單,其中用戶數據存儲在$scope.feedback中。現在我想包括一個進度條,並需要確定百分比。AngularJS - ReferenceError:「someScopeVar」未定義

// $scope-variable to hold the data. 
    $scope.feedback = { 
     title : undefined, 
     name : undefined, 
     email : undefined, 
     tel : undefined 
    }; 

    // Get the total amount of attributes of $scope.feedback 
    var totalAmountOfAttributesOfFeedback = 0; 
    for (var k in $scope.feedback) { 
     if ($scope.feedback.hasOwnProperty(k)) { 
      ++totalAmountOfAttributesOfFeedback; 
     } 
    } 

    // Get the amount of defined attributes of $scope.feedback 
    // to determine the percentage of Progress 
    $scope.determinePercentageOfAttributesDefined = function() { 
     var amountOfDefinedAttributesOfFeedback = 0; 
     for (var l in $scope.feedback) { 
      if (angular.isDefined($scope.feedback[l])) { 
       ++amountOfDefinedAttributesOfFeedback; 
      } 
     } 
     $scope.percentageOfAttributesDefined = (amountOfDefinedAttributesOfFeedback/totalAmountOfAttributesOfFeedback)*100; 
     console.log(percentageOfAttributesDefined); 
    }; 

要計算百分比,我計算的屬性總數爲$scope.feedback。 要計算已由用戶填充的屬性數量,有功能determinePercentageOfAttributesDefined,只要觸摸輸入字段就會調用該功能。

的問題是,該變量$scope.percentageOfAttributesDefined沒有定義,我得到的瀏覽器控制檯以下錯誤:

ReferenceError: percentageOfAttributesDefined is not defined 

我也試過在我的控制器創建變量別的地方,但得到了同樣的錯誤。有人知道這個的原因嗎? 其他範圍 - 變量如$scope.feedback可以毫無問題地被訪問。

感謝您抽出寶貴的時間:)

+0

請問您可以用console.log($ scope.percentageOfAttributesDefined)來檢查;' –

+0

@GirdhariAgrawal這是它的外觀。唯一的問題是日誌沒有工作,因爲我忘記了$ scope。 ...謝謝 –

+0

你能接受我的回答嗎? –

回答

2

console.log($scope.percentageOfAttributesDefined);

這應該解決您的問題。