Angular-UI中的Keypress

时间:2012-10-10 09:46:48

标签: javascript html5 angularjs

我使用按键操作遇到了一些问题,如下所示 -

<div ng-controller="GBNController">
...
<input id="search-field" type="text" placeholder="JSON Query" ng-model="queryText" ui-keypress="{enter: foo()}"/>
...
</div>

我的javascript有 -

var AngApp = angular.module('gbn', ['ui']);
var GBNController = function($scope) {
    $scope.queryText = '';
    $scope.foo = function() {
        alert('test');
    }
};

现在只有在加载文档时调用此函数foo,然后才会在文本字段中调用return按键事件。

我正在使用主分支的当前head

我在这里做错了什么,还是这个坏了?

2 个答案:

答案 0 :(得分:7)

你需要把foo()放在引号中。

<input ui-keypress="{enter: 'foo()'}">

答案 1 :(得分:2)

您可以轻松地滚动自己的按键指令

Here's a plunker to demo

代码:

app.directive('zKeypress', function(){
  return {
    restrict: 'A',
    link: function(scope, elem, attr, ctrl) {
      elem.bind('keypress', function(){
        scope.$apply(function(s) {
          s.$eval(attr.zKeypress);
        });
      });
    }
  };
});

HTML

<input type="text" z-keypress="foo()"/>