2

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

<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文本字段中的按键事件就不会被处理。

我正在使用主分支的当前负责人。

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

4

2 回答 2

7

您需要将 foo() 放在引号中。

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

于 2012-10-10T19:09:31.040 回答
2

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

这是一个演示

和代码:

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()"/>
于 2012-10-10T13:26:42.933 回答