如何从输入框中获取angularJS中的值
How to get the value in angularJS from the input box
如何获取name2
的值?
function DemoController($scope) {
$scope.name1 = 'LISA';
//How can I get the value of name2?
console.log($scope.name2) //this does not work
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="" ng-controller="DemoController">
{{ name1 }}
<input type="text" placeholder="Lisa" ng-model="name2">
</div>
发生这种情况是因为您没有初始化控制器内的name2
。因此在CCD_ 4时刻的范围中不存在称为CCD_。并且name2
属性将在您对输入进行第一次更改后立即在作用域上创建。所以这就是为什么它得到undefined
。
这是Demo Plunker,检查控制台。
$scope.$watch('name2', function(newVal, oldVal) {
console.log("new value : " + newVal);
console.log("old value : " + oldVal);
});
我在name2
属性上添加了一个$watch
(当更改name2
的值时,这个$watch
函数将执行),请注意,它首先是undefined
,在文本框中键入内容后,它将立即获取input的值。
尝试这个
<div ng-app="" ng-controller="DemoController">
{{ name2 }}
<input type="text" placeholder="Lisa" ng-model="name2">
</div>
首先,您的控制器在$scope.name2存在之前就已经运行了。您应该让控制台在AFTER的某个时间点报告更改。从代码中删除该行。(console.log…)
每当名称2中的文本发生更改时,$scope.name2都将设置为该值。如果您在控制器上添加以下内容,您可以看到效果:
$scope.saveChanges = function () {
alert($scope.name2);
}
和HTML:
<button ng-click="saveChanges()">See Value</button>
试着关注我。在第一次执行脚本时,不声明变量(或属性-对于本主题来说并不重要)。一旦解释器到达console.log
函数,它就会尝试调用name2
的值,但正如我们所说的,它没有定义。为了记录您绑定的数据,您应该实现一些逻辑,只在更改后执行console.log
,甚至可能使用$scope.apply
。(我认为$scope.apply
现在对你来说太远了,你应该忽略它)。底线是-您的变量不是为第一次迭代定义的,因此您得到了这个结果。
您必须提交表单才能获得值,或者您使用监视函数
function DemoController($scope) {
$scope.name1 = 'LISA';
$scope.submitName = function () {
console.log($scope.name2)
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="" ng-controller="DemoController">
{{ name1 }}
<input type="text" placeholder="Lisa" ng-model="name2">
<button ng-click="submitName()">click </button>
</div>
name 2将随着您在输入框中的键入而更改。你可以通过添加来看到这一点
{{name2}}
到您的html
控制器不会看到名称2的更改,除非你注意它,你可以使用$watch来完成,将其添加到你的控制器中
$scope.$watch('name2', function() {
console.log($scope.name2);
});
让您的ng模型处于监视状态,以获取更新
function DemoController($scope) {
$scope.name1 = 'LISA';
//this will work
$scope.$watch(function(val){
if(val){
console.log($scope.name2);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="" ng-controller="DemoController">
{{ name1 }}
<input type="text" placeholder="Lisa" ng-model="name2">
</div>
- 如何从输入框中获取angularJS中的值
- 获取angularjs中的URL部分
- 我一直在获取angularjs服务不是函数错误(LoginService.login不是函数)
- 获取AngularJS服务中TextArea的值
- 获取angularjs中输入类型时间的值
- 如何从服务器获取AngularJs中数组中每个元素的数据
- 如何在回调函数中获取 AngularJS 中 $scope 变量的当前状态
- 获取 AngularJS 应用程序以在单击时显示模态
- 在提交以调用 webapi 之前,获取 Angularjs 中变量中的输入值
- 从纯Javascript获取AngularJs Service
- 从基本应用程序获取 angularjs 错误
- 获取AngularJS中的未知对象并对其进行循环
- 获取AngularJs中的文本区域光标位置
- 如何获取angularjs生成的元素的created事件
- 获取AngularJS指令中的template元素
- 获取AngularJS脚本中的HTML元素数据
- 未从$scope模型获取AngularJS指令中的数据
- 如何从选项中获取angularjs的http请求url
- 获取Angularjs变量输出
- 防止浏览器在HTML语法中获取AngularJS属性