【发布时间】:2019-04-20 02:02:26
【问题描述】:
我正在尝试围绕 tinyMce 的 wordpress 实例构建一个有角度的应用程序。在编辑器内部有非内容可编辑的元素,单击这些元素会在 tinymce 编辑器之外打开一个模式窗口。
但是,当单击元素时,模式不会打开,直到用户将鼠标移到位于编辑器内的 iframe 之外。
我有一项服务可以设置 tinymce 编辑器。 该服务注册了一个单击事件处理程序,当单击该处理程序时,将通过主题对象发出一个事件。
我的模态类订阅了主题,这将导致在单击元素时打开模态。
编辑器处理服务
private clickSubject: Subject<HTMLElement>;
public clickEvent:Observable<HTMLElement>;
private editorSetup(editor: TinyMceEditor) {
editor.on("DblClick", e => {
let elm = e.target as HTMLElement;
this.clickSubject.next(elm);
});
}
模态组件
private open(elm:HTMLElement){
this.isOpen = true;
console.log("Opening");
}
ngOnInit() {
this.editorHandler.clickEvent.subscribe(elm =>this.open(elm));
}
我创建了一个StackBlitz 应用来帮助演示我的问题。
预期: 单击位于编辑器中的元素将立即打开一个模式。
实际: 当我单击元素时,编辑器上的单击事件会触发,并且“正在打开”消息也会记录到控制台。但是,在用户将鼠标移到位于编辑器内部的 iframe 之外之前,模态框不会变得可见。
【问题讨论】: