我需要在我的整个应用程序中限制退格键导航。是否有任何解决方案,即我可以在一个地方为我的整个应用程序做些什么?
答案 0 :(得分:1)
angular.module('yourModule', [])
.controller('yourController', ['$scope', '$document', function($scope, $document) {
$document.on('keydown', function(e){
if(e.which === 8 && ( e.target.nodeName !== "INPUT" && e.target.nodeName !== "SELECT" ) ){ // you can add others here inside brackets.
e.preventDefault();
}
});
}
]);
除非有任何输入标记处于活动状态,否则会阻止退格导航。
我们还没有为textarea处理它,所以它不允许在textarea上退格。
答案 1 :(得分:1)
这是正确的方法:
preventNavigate.$inject = ['$window'];
function preventNavigate($window) {
return {
restrict: 'A',
link: function() {
$window.onbeforeunload = function() {
return "Are you sure you want to leave?";
}
}
}
}
app.directive('preventNavigate', preventNavigate);
然后在您的ng-app包含属性prevent-navigate
;
<body ng-app="app" prevent-navigate>
答案 2 :(得分:0)
您可以创建像this这样的按键事件指令,如果按下按键是退格键,您可以在事件回调中e.preventDefault();
。