我有10个输入字段,每个字段看起来像:
<input type='text' ng-model='value1' ng-keyup='checkValue($event)'>
现在在我的角度控制器中,checkValue
函数是
$scope.checkValue = function(event){
if(event.target.value > someOtherDynamicValue){
// I have to reset the value here
event.target.value = "";
}
}
如果if
条件为真,则此值为空,但问题是此值未从ng-model
中删除。所以我试图像这样访问目标元素的ng-model
名称:
var modelName = angular.element(event.target)[0]attributes[2].nodeValue;
所以现在在modelName
我有目标元素的ng-model
名称,我试图重置它:
$scope.modelName = "";
所以最后我的代码看起来像:
$scope.checkValue = function(event){
if(event.target.value > someOtherDynamicValue){
// I have to reset the value here
event.target.value = "";
var modelName = angular.element(event.target)[0]attributes[2].nodeValue;
$scope.modelName = "";
}
}
我知道它将$scope.modelName
视为一个新的独立范围变量但是如何更改ng-model
的值?
修改
我真正想要实现的是:当我编写角度函数时,我现在有10个具有不同ng-model
名称的字段,我不想直接在函数内部使用ng-model
。例如:
$scope.checkValue = function(event){
if(event.target.value > someOtherDynamicValue){
// I have to reset the value here
$scope.value1 = ""; //I don't want to do this, because $scope.value1 is for one text field and I have 10 filed if i use this i need to write it 10 times
}
}
所以$scope.value1
我希望使用event.target
动态生成。
感谢。
答案 0 :(得分:0)
根据您在第三个文本框值上输入的值进行一次和两次更改
// Code goes here
var app = angular.module('TestApp', []).controller('HomeController', HomeController);
HomeController.$inject = ['$scope'];
function HomeController($scope) {
var home = this;
home.checkValue = function($event) {
if ($event.target.value < 100) {
home.val1 = 0;
}else{
home.val2 = 10;
}
}
}
&#13;
<!DOCTYPE html>
<html ng-app="TestApp">
<head>
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller="HomeController as home">
<div>
{{ home.val1 }} | {{ home.val2 }} | {{ home.val3}}
</div>
<input type="number" ng-model="home.val1" ng-keyup='home.checkValue($event)'>
<input type="number" ng-model="home.val2" ng-keyup='home.checkValue($event)'>
<input type="number" ng-model="home.val3" ng-keyup='home.checkValue($event)'>
</div>
</body>
</html>
&#13;