我在Angularjs上使用Uikit,我需要创建一个指令,当我按下esc按钮时,该指令会阻止关闭Modal。我试着用这种方式:
mainApp.directive('ngEsc', function () {
return function (scope, element, attrs) {
element.bind("keydown keypress keyup", function (event) {
if(event.which === 27) {
event.preventDefault();
}
});
};
});
然后将指令放在模态
上 测试模式但它仍然关闭。还有其他办法吗?
答案 0 :(得分:2)
您是否尝试过使用keyboard:false
选项?
UIkit.modal("#modal element", {bgclose: false, keyboard:false}).show();
它适用于我的情况。
你也可以看到模态uikit的核心:modal.js
答案 1 :(得分:2)
下面是我在我的angular 7项目中解决此问题的方法;
uikit.modal("#modalR", { bgClose: false, escClose: false, modal: false, keyboard:false}).show(this.data)
有关更多信息,请访问下面的链接 https://github.com/uikit/uikit/blob/develop/src/js/core/modal.js#L15:L21
答案 2 :(得分:0)
您可以尝试使用“return false”而不是preventDefault:
mainApp.directive('ngEsc', function () {
return function (scope, element, attrs) {
element.bind("keydown keypress keyup", function (event) {
if(event.which === 27) {
return false;
}
});
};
});