AngularJS禁用密钥的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS禁用密钥的方法相关的知识,希望对你有一定的参考价值。
在我的AngularJs项目中,我想禁用所有视图的退格键。这是一个简单的jQuery解决方案。在AngularJs中有没有解决这个问题的方法?
$(document).on("keydown", function (e) {
if (e.which === 8 && !$(e.target).is("input, textarea")) {
e.preventDefault();
}
});
问候
答案
如果要禁用整个网站的退格键,可以使用与此类似的内容(Angularjs : disable tab key default behaviour),并使用$document
将指令应用于正文文档。
像这样的东西:
angular.module('app', []).directive('muteKey', ['$document', function($document) {
return function(scope, element, attrs) {
$document.on("keydown", function(e) {
/*
* you don't need the $(e.target) if you want to
* disable the key press in any place of the project
* and not just for inputs or textareas
*/
if (e.which === 8) {
e.preventDefault();
}
});
};
}]);
<body mute-key>
<!---->
</body>
另一答案
您可以在ng-keydown
>标记中添加<input
属性:
<input type="text" ng-keydown="checkKey($event)"/>
$scope.checkKey(keyEvent) {
if (keyEvent.which === 13) {
$event.preventDefault();
}
}
另一答案
$document.on("keydown", function (e) {
if (e.which === 8 && !$(e.target).is("input, textarea")) {
e.preventDefault();
}
});
$document service的方法是subset of jQuery called jqLite。
如何应用此代码?我的首发应用程序就像
angular.module("my_app", ['ngRoute']);
把它放在一个运行块中:
angular.module("my_app").run(function($document) {
$document.on("keydown", function keydown Handler(e) {
//Put handler code here
});
});
!$(e.target).is("input, textarea")
可以翻译:
(e.target.type == "input") || (e.target.type == "textarea");
以上是关于AngularJS禁用密钥的方法的主要内容,如果未能解决你的问题,请参考以下文章
使用 BottomBar 和片段容器禁用 Android 片段重新加载