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、テキストフィールドのkeypressイベントが処理されることはありません。

マスターブランチの現在のヘッドを使用しています。

私はここで何か間違ったことをしていますか、それともこれは壊れていますか?

4

2 に答える 2

7

foo()を引用符で囲む必要があります。

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

于 2012-10-10T19:09:31.040 に答える
2

独自のkeypressディレクティブを簡単にロールできます

これがデモ用のプランカーです

そしてコード:

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 に答える