【发布时间】:2017-11-24 13:19:54
【问题描述】:
我正在尝试通过使用 tinymce 而不是文本区域在我的应用程序模式上创建富文本编辑器。但是我的 HTML 代码无法在富文本的内容区域中显示为文本。我正在使用 Angular 2。
如有任何帮助,将不胜感激
import { Component, AfterViewInit, OnDestroy, Input, Output, EventEmitter } from 'angular2/core';
import { RdComponent, RdLib } from '../../../../../node_modules/mulberry/core';
declare let tinymce: any;
@Component({
selector: 'mail-template',
template: `
<textarea style="height:15em"><p>{{ content }}</p></textarea>
`
})
export class MailTemplatesComponent extends RdComponent {
@Input("rd-model") model: string;
@Output() onEditorKeyup = new EventEmitter<any>();
public editor: any;
ngAfterViewInit() {
console.log(this.model);
tinymce.init({
selector: 'textarea',
setup: editor => {
this.editor = editor;
editor.on('keyup', () => {
const content = editor.getContent();
this.onEditorKeyup.emit(content);
})
}
});
}
ngOnDestroy() {
tinymce.remove(this.editor);
}
}
<div class="col-md-12">
<rd-field [rd-text]="translate('Mail İçeriği')"></rd-field>
<mail-template [(rd-model)]="data.MailContent" rd-height="25em"></mail-template>
</div>
【问题讨论】:
-
你的意思是{{ content }}没有显示在textarea里面吗?可能 tinymce 正在覆盖 textarea 的内容,而 Angular 会丢失它的上下文。
-
顺便说一句,内容甚至没有被定义为类变量。所以 {{ content }} 是未定义的。无论如何,我不能 100% 确定您要存档的内容。
-
@Mick 谢谢你,我已经解决了这个问题。问题是,我没有看到我需要使用 {{model}} 而不是 {{content}} 将 HTML 内容放入富文本区域。谢谢。
标签: angular typescript tinymce rich-text-editor html-to-text