Javascript AngularJS:ng按键不工作

Javascript AngularJS:ng按键不工作,javascript,jquery,angularjs,angular-ui,Javascript,Jquery,Angularjs,Angular Ui,问题:ng keypress不工作,但如果我用ng click替换ng keypress,则filterSearchData($event)功能工作 HTML:- <!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> <meta charset="utf-8"> <title>Custom Plunker</title>

问题:ng keypress不工作,但如果我用
ng click
替换
ng keypress
,则
filterSearchData($event)
功能工作

HTML:-

<!DOCTYPE html>
<html ng-app="myApp">
    <head lang="en">
        <meta charset="utf-8">
        <title>Custom Plunker</title>  
        <link rel="stylesheet" type="text/css" href="ng-grid.css" />
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script src="jquery.min.js"></script>
        <script src="angular.min.js"></script>
        <script type="text/javascript" src="ng-grid.debug.js"></script>
        <script type="text/javascript" src="main.js"></script>
    </head>
    <body>
        <body ng-controller="MyCtrl">
            <input type="text" ng-keypress="filterSearchData($event)" />
            <div class="gridStyle" ng-grid="gridOptions"></div>
        </body>
    </body>
</html>

在这种情况下,我建议使用而不是
ng按键

// HTML:
<input type="text" ng-model="filter" ng-change="filterSearchData()" />

// Controller:
app.controller('MyCtrl', function($scope, $http) {
    $scope.filterSearchData = function() {
        console.log($scope.filter);
    };
});
//HTML:
//控制器:
app.controller('MyCtrl',函数($scope,$http){
$scope.filterSearchData=函数(){
log($scope.filter);
};
});

在这种情况下,我建议使用而不是
ng按键

// HTML:
<input type="text" ng-model="filter" ng-change="filterSearchData()" />

// Controller:
app.controller('MyCtrl', function($scope, $http) {
    $scope.filterSearchData = function() {
        console.log($scope.filter);
    };
});
//HTML:
//控制器:
app.controller('MyCtrl',函数($scope,$http){
$scope.filterSearchData=函数(){
log($scope.filter);
};
});

如果出于某种原因,您必须使用angular的旧版本,该版本不支持
ngKeypress
指令,您可以随时添加自己的实现。这很容易做到,例如
onKeypress
指令:

app.directive('onKeypress', function() {
    return {
        scope: {
            handler: '&onKeypress'
        },
        link: function(scope, element) {
            element.bind('keypress', function(e) {
                scope.handler({$event: e});
            });
        }
    };
});
HTML:



演示:如果出于某种原因,您必须使用angular的旧版本,该版本不支持
ngKeypress
指令,您可以随时添加自己的实现。这很容易做到,例如
onKeypress
指令:

app.directive('onKeypress', function() {
    return {
        scope: {
            handler: '&onKeypress'
        },
        link: function(scope, element) {
            element.bind('keypress', function(e) {
                scope.handler({$event: e});
            });
        }
    };
});
HTML:



演示:您使用的是什么版本的Angular?我不相信总是这样supported@lan:我正在使用AngularJS v1.0.2您使用的AngularJS版本是什么?我不相信总是这样supported@lan:我正在使用AngularJS v1.0.2