AngularJS:ng-model无法使用ng-keydown正确更新。 ng-model关闭一个字符

时间:2018-07-18 01:42:49

标签: javascript angularjs angular-ngmodel

我正在查看AngularJS上由用户更改的文本输入。

但是,似乎当我从.js打印到控制台时,ng-model关闭了一个字符,这是因为更新一次按下一次键似乎存在滞后。

例如: 如果用户键入“ hello”,我将看到“ hell”,直到触发另一个按键,这将把我看到的内容更新为“ hello”,但用户输入可能是“ helloW”

如果这有道理...对不起。

基本上,有没有一种方法可以强制从控制器更新ng-model,以便每次按键时都能看到用户输入?

抱歉,我无法发布代码。

2 个答案:

答案 0 :(得分:1)

ng-change ng-model

 var myApp = angular.module('app',[]);
 myApp.controller('Main', function ($scope) {      
    $scope.print = function(){
      console.log($scope.myname);
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app" ng-controller="Main">
<input type="text" name="inputbox" ng-change="print()" ng-model="myname">
</body>

答案 1 :(得分:1)

尝试将“ ng-keyup ”与“ ng-model ”一起使用,而不是 ng-keydown :)

此处是文档: https://docs.angularjs.org/api/ng/directive/ngKeyup

 var app = angular.module('app',[]);
 app.controller('MyController', function ($scope) {      
    $scope.onKeyUpPrint = function(){
      // You can name the function as you want
      // scope will be triggered exactly on key Up
      console.log($scope.inputModel);
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app" ng-controller="MyController">
<h1>Use ng-keyup<h1>
<input type="text" name="inputbox" ng-keyup="onKeyUpPrint()" ng-model="inputModel">
</body>