获取字符串到ng-model值angular js

时间:2016-12-31 08:00:43

标签: javascript angularjs variables

我有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动态生成。

感谢。

1 个答案:

答案 0 :(得分:0)

根据您在第三个文本框值上输入的值进行一次和两次更改

&#13;
&#13;
// 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;
&#13;
&#13;