什么时候“$viewValue”变为“NOT undefined”?
2016-11-03
1405
这是我计数输入文本中值长度的示例:
137334401
问题:如果输入中的值为null或neam ),单击
提交
:
431992098
然后,我尝试在输入中键入某些内容,删除它并再次单击
提交
。它应该有效。
我的问题:对于
输入[type = text]
,没有
默认值
带有属性
$ viewValue < /code>?
我的意思是:如果值是空或空的,则
form.myinput。$ viewValue
应该是
'''
。因此,长度必须为
0
。
3个回答
尝试一下:
它将首先检查文本框的
null
和
empty
值,然后根据该值执行操作。
var app = angular.module('myApp', []);
app.controller('myController', function ($scope) {
$scope.submit = function () {
if($scope.myinput != null && $scope.myinput.length > 0) {
alert($scope.myinput.length);
} else {
alert("Please enter the text");
}
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form id="myForm" name="myForm" novalidate ng-app="myApp" ng-controller="myController">
<input ng-model="myinput" name="myinput" />
<button ng-click="submit()">Submit</button>
</form>
Rohìt Jíndal
2016-11-03
您需要通过范围访问它。$scope.form.myinput.$viewValue.length
话虽如此,我不认为控制器应该知道表单,因为表单是一个视图概念。与表单变量有关的任何内容都不应进入您的控制器。我非常赞成根本不将 $scope 传递到您的控制器中,而是使用控制器作为语法。
Adrian Brand
2016-11-03
以下是我的做法。这只适用于 Angular 1.3 或更高版本,因为 1.2 不支持控制器。
let app = angular.module('myApp', []);
app.controller('myController', function () {
var vm = this;
vm.submit = function () {
alert(vm.myinput);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<form id="myForm" name="myForm" novalidate ng-app="myApp" ng-controller="myController as vm">
<input ng-model="vm.myinput" name="myinput" />
<button ng-click="vm.submit()">Submit</button>
</form>
Adrian Brand
2016-11-03