我怎样才能检测angular.js的keydown或键preSS事件? [英] How can I detect keydown or keypress event in angular.js?

查看:232
本文介绍了我怎样才能检测angular.js的keydown或键preSS事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图得到一个手机号码,文本框的值使用angular.js验证其输入值。我是一个新手使用angular.js并没有那么确定如何落实这些事件,并把一些JavaScript来对我的html code验证或者操纵的形式输入。

I'm trying to get the value of a mobile number textbox to validate its input value using angular.js. I'm a newbie in using angular.js and not so sure how to implement those events and put some javascript to validate or manipulate the form inputs on my html code.

这是我的HTML:

    <div>
        <label for="mobile_number">Mobile Number</label>
        <input type="text" id="mobile_number" placeholder="+639178983214" required
           ngcontroller="RegisterDataController" ng-keydown="keydown">
    </div> 

和我的控制器:

    function RegisterDataController($scope, $element) {
       console.log('register data controller');
       console.log($element);
       $scope.keydown = function(keyEvent) {
        console.log('keydown -'+keyEvent);
       };
    }

我不知道如何在angular.js使用keydown事件,我还搜查了如何正确使用它。而且我可以确认的指令输入我的?或者我应该使用像我做了什么用这样的keydown或钥匙preSS事件控制器?

I'm not sure how to use the keydown event in angular.js, I also searched how to properly use it. And can i validate my inputs on the directives? Or should I use a controller like what I've done to use the events like keydown or keypress?

推荐答案

ngKey preSS ngKeydown ngKeyup 现在AngularJS的一部分。

Update:

ngKeypress, ngKeydown and ngKeyup are now part of AngularJS.

<!-- you can, for example, specify an expression to evaluate -->
<input ng-keypress="count = count + 1" ng-init="count=0">

<!-- or call a controller/directive method and pass $event as parameter.
     With access to $event you can now do stuff like 
     finding which key was pressed -->
<input ng-keypress="changed($event)">

在这里阅读更多:

Read more here:

<一个href=\"https://docs.angularjs.org/api/ng/directive/ngKey$p$pss\">https://docs.angularjs.org/api/ng/directive/ngKey$p$pss
<一href=\"https://docs.angularjs.org/api/ng/directive/ngKeydown\">https://docs.angularjs.org/api/ng/directive/ngKeydown
<一href=\"https://docs.angularjs.org/api/ng/directive/ngKeyup\">https://docs.angularjs.org/api/ng/directive/ngKeyup

此前的解决方案:

解决方法1:使用 NG-变化 NG-模型

<input type="text" placeholder="+639178983214" ng-model="mobileNumber" 
ng-controller="RegisterDataController" ng-change="keydown()">

JS:

function RegisterDataController($scope) {       
   $scope.keydown = function() {
        /* validate $scope.mobileNumber here*/
   };
}

解决方案2.使用 $观看

<input type="text" placeholder="+639178983214" ng-model="mobileNumber" 
ng-controller="RegisterDataController">

JS:

$scope.$watch("mobileNumber", function(newValue, oldValue) {
    /* change noticed */
});

这篇关于我怎样才能检测angular.js的keydown或键preSS事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆