【发布时间】:2017-12-14 19:10:24
【问题描述】:
如果我有一个像这样的常规文本区域:
<textarea [(ngModel)]="model.body" name="body" id="body"></textarea>
当我在文本区域中输入时,页面上的以下内容会实时更新文本:
{{model.body}} // <-- updates in real time
但是,如果我将 TinyMCE 附加到同一个文本区域:
// WYSIWYG for body field
tinymce.init({
selector: '#body',
plugins: ['link'],
skin_url: 'assets/skins/lightgray',
menubar: false,
statusbar: false,
toolbar: 'bold italic underline link',
setup: editor => {
this.editor = editor;
editor.on('keyup', () => {
const content = editor.getContent();
this.onEditorKeyup.emit(content);
this.model.body = content;
});
}
});
然后{{model.body}} 不再实时更新,而是我必须单击页面上的其他表单字段之一,例如:
<input matInput required [(ngModel)]="model.title" name="title">
点击{{model.body}} 后,TinyMCE 中的内容就会更新。有什么办法解决这个问题?
【问题讨论】:
-
您可以在设置
body内容后强制检测角度变化,例如调用ApplicationRef.tick(),如this answer 所示。
标签: javascript angular tinymce