如何使用angular.element(’#id’)获取输入元素的值

当我试图使用angular.element获取input元素的值时,它返回undefined。 这是我的代码:

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

如何使用angular.element获取值

说明

你应该使用类似于jQuery的$.fn.val val方法:

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

或者,您可以使用纯HTMLInputELement的value属性:

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

…因为angular.element实例是一个类似于数组的HTMLElements集合,其索引可以访问每个元素。

正确的做法

但是……你永远不应该在Angular应用程序的上下文中读取这样的输入值。 相反,使用ngModel指令并直接将输入值绑定到角度模型:

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

你在HTML中的位置

  

这对我有用

 angular.element(document.getElementById('username')).val(); 

与jQuery中的方法相同, angular.element是一个包装器/子包:

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

除上述方式外,还可以使用以下方法:

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