html - Bootstrap 对话框 esc 键不起作用

标签 html css twitter-bootstrap angular

这是我的对话框,但 esc 键不起作用,你知道哪里出了问题吗?

<div *ngIf="visible" class="overlay">
    <div role="dialog" class="overlay-content" tabindex="-1">
        <div class="modal-dialog" [ngClass]="{'wide-modal-dialog': wideContent}" >
            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header" *ngIf="header.length > 0">
                    <button type="button" class="close" (click)="close()" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">{{ header }}</h4>
                </div>
                <div class="modal-body">
                    <ng-content></ng-content>
                </div>
                <div class="modal-footer footer-buttons">
                    <button type="button" class="btn btn-default" [disabled]="positiveDisabled" (click)="confirm()">{{ positiveBtnLabel }}</button>
                    <button type="button" class="btn btn-default" (click)="close()">{{ negativeBtnLabel }}</button>
                </div>
            </div>
        </div>
    </div>
</div>

最佳答案

我不确定为什么它不起作用,但你可以在指令中设置一个监听器:

@Directive({
    selector: '[onEsc]'
})
export class ClickOutsideDirective {
    constructor(private elementRef: ElementRef) {
    }

    @Output()
    onEsc = new EventEmitter<Event>();

    @HostListener('window:keydown', ['$event'])
    onKeyDown(event: KeyboardEvent): void {
        if (event.keyCode === 27) {
            this.onEsc.emit(event);
        }
    }
}

在组件中:

.... (onEsc)=close()....

关于html - Bootstrap 对话框 esc 键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46206082/

相关文章:

html - 是否可以给 href ="mailto:"数据绑定(bind) : text? 的值

html - W3.CSS 中的第一个菜单项默认为深灰色

css - Twitter-Bootstrap 3 网格布局重叠

javascript - 滚动到元素时执行 FadeInUp 动画(javascript)

javascript - 动态调整 DIV 高度以适应另一个 DIV 的内容?

css - 无法阻止动画循环

html - CSS Media Query 可以和 bootstrap sizing 一起使用吗?

node.js - 如何在 React 应用程序中自定义 Bootstrap 变量?

javascript - 使用 Javascript 的嵌套列表 (TCPPDF)

css - 如何修复 IE 中的 flex 列高度错误