web-dev-qa-db-de.com

Wie erhalte ich den Wert eines Eingabeelements mit angle.element ('# id')

Wenn ich versuche, den Wert des Eingabeelements mithilfe von angle.element abzurufen, wird dessen Wert undefined ..__ zurückgegeben. Hier ist mein Code:

$scope.registerUser = function() {
    console.log(angular.element('#username').value); // undefined
    console.log(document.getElementById('username').value); // sampleName
};

Wie erhalte ich den Wert mithilfe von angle.element

16
Seshu

Erläuterung

Sie sollten die val -Methode verwenden, die der von jQuery $.fn.val ähnelt:

console.log(angular.element('#username').val());

Alternativ können Sie die value-Eigenschaft des reinen HTMLInputELement verwenden:

console.log(angular.element('#username')[0].value);

... weil angular.element-Instanz eine Array-artige Sammlung von HTMLE-Elementen ist, auf die jedes Element über seinen Index zugreifen kann.

Richtige Annäherung

Aber ... Sie sollten einen solchen Eingabewert niemals im Zusammenhang mit der Angular-App lesen. Verwenden Sie stattdessen die Anweisung ngModel und binden Sie den Eingabewert direkt an das Winkelmodell:

$scope.registerUser = function() {    
    console.log($scope.username);
};

wo in HTML hast du 

<input type="text" ng-model="username">
19
dfsq

Das funktioniert für mich

angular.element(document.getElementById('username')).val();
2
Tunde Pizzle

Zusätzlich zu den oben genannten Möglichkeiten können auch diese verwendet werden:

angular.element('[id="username"]').val();
angular.element('[id="username"]')[0].value;
0
gaganKapula

Genauso wie in jQuery, für das angular.element ein Wrapper/sub ist:

angular.element('#username').val();
0
Ben Jaspers