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
können Sie bitte überprüfen mit 'console.log ($ scope.percentageOfAttributesDefined);' –
@GirdhariAgrawal Das war es offensichtlich. Das einzige Problem war, dass das Log nicht funktioniert, weil ich den $ scope vergessen habe. ... Vielen Dank –
Können Sie bitte meine Antwort akzeptieren? –