2016-08-31 1 views
1

Ich erstelle ein Feedback-Formular mit AngularJS, in dem die Benutzerdaten in $scope.feedback gespeichert sind. Jetzt möchte ich einen Fortschrittsbalken einfügen und muss den Prozentsatz bestimmen.AngularJS - ReferenceError: "someScopeVar" ist nicht definiert

// $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); 
    }; 

um den Prozentsatz zu berechnen, I die Gesamtmenge der Attribute $scope.feedback zähle. Um die Anzahl der bereits vom Benutzer gefüllten Attribute zu zählen, gibt es die Funktion determinePercentageOfAttributesDefined, die aufgerufen wird, wenn ein Eingabefeld berührt wird.

Das Problem ist, dass die Variable $scope.percentageOfAttributesDefined nicht definiert ist und ich erhalte die folgende Fehlermeldung im Browser-Konsole:

ReferenceError: percentageOfAttributesDefined is not defined 

Ich versuchte auch woanders in meinem Controller die Variable zu schaffen, aber die gleichen Fehler . Weiß jemand den Grund dafür? Andere Scope-Variablen wie $scope.feedback sind problemlos erreichbar.

Vielen Dank für Ihre Zeit :) Einnahme

+0

können Sie bitte überprüfen mit 'console.log ($ scope.percentageOfAttributesDefined);' –

+0

@GirdhariAgrawal Das war es offensichtlich. Das einzige Problem war, dass das Log nicht funktioniert, weil ich den $ scope vergessen habe. ... Vielen Dank –

+0

Können Sie bitte meine Antwort akzeptieren? –

Antwort

2

console.log($scope.percentageOfAttributesDefined);

Dies sollte Ihr Problem lösen.

Verwandte Themen