あなたのものを構築します。私が行った方法は、キープレス用とキーアップ用の2つのディレクティブを作成することです
モジュール (私は yourapp と呼びます) を作成したら、ディレクティブを作成します。
yourapp.directive('keyPress', function () {
return function (scope, elm, attrs) {
elm.bind('keypress', function (e) {
var intKey = (window.Event) ? e.which : e.keyCode;
if (intKey === attrs.key) {
if (scope.theater === 1) {
scope.$apply(attrs.keyPress);
}
}
});
};
});
yourapp.directive('keyUp', function () {
return function (scope, elm, attrs) {
elm.bind('keyup', function (e) {
var intKey = (window.Event) ? e.which : e.keyCode;
if (intKey === attrs.key) {
if (scope.theater === 1) {
scope.$apply(attrs.keyUp);
}
}
});
};
});
したがって、次のように使用できます。
<div key-press="doSomething()" key="13"> // enter
<div key-up="doSomething()" key="27"> // esc
注:これ(window.Event) ? e.which : e.keyCode;
により、クロスブラウザになります。