Angular5 整合富文本编辑器TinyMCE(汉化+上传)
发布时间:2020-12-17 08:28:49 所属栏目:安全 来源:网络整理
导读:1. TinyMCE简介 TinyMCE是一个轻量级的富文本编辑器,相对于CKEditor更加精简,但足以满足绝大部分场景的需要。 2. 安装和配置TinyMCE 2.1 安装TinyMCE npm install --save tinymce 2.2 设置tinymce全局访问(.angular-cli.json) "scripts": [ "../node_mod
1. TinyMCE简介TinyMCE是一个轻量级的富文本编辑器,相对于CKEditor更加精简,但足以满足绝大部分场景的需要。 2. 安装和配置TinyMCE
3. 创建TinyMCE组件ng g c myeditor import {
Component,AfterViewInit,EventEmitter,OnDestroy,Input,Output
} from '@angular/core';
import { HttpClient,HttpHeaders } from '@angular/common/http';
@Component({
selector: 'tiny-editor',templateUrl: './tiny-editor.component.html',styleUrls: ['./tiny-editor.component.css']
})
export class TinyEditorComponent implements AfterViewInit,OnDestroy {
@Input() elementId: String;
@Output() onEditorContentChange = new EventEmitter();
editor;
constructor() { }
ngAfterViewInit() {
let self = this;
tinymce.init({
selector: '#' + this.elementId,height: 600,plugins: ['link','table','image'],skin_url: 'assets/skins/lightgray',setup: editor => {
this.editor = editor;
editor.on('keyup change',() => {
const content = editor.getContent();
this.onEditorContentChange.emit(content);
});
}
});
}
ngOnDestroy() {
tinymce.remove(this.editor);
}
}
// tiny-editor.component.html
<textarea id="{{elementId}}"></textarea>
4. 使用自定义TinyMCE组件<tiny-editor [elementId]="'defined-tinymce-editor'"></tiny-editor> 5. 增加图片上传功能import {
Component,OnDestroy {
@Input() elementId: String;
@Output() onEditorContentChange = new EventEmitter();
editor;
constructor(private http: HttpClient) { }
ngAfterViewInit() {
let self = this;
tinymce.init({
selector: '#' + this.elementId,() => {
const content = editor.getContent();
this.onEditorContentChange.emit(content);
});
},// 图片上传功能
images_upload_handler: function(blobInfo,success,failure) {
var formData;
formData = new FormData();
console.log(blobInfo);
formData.append("file",blobInfo.blob(),blobInfo.filename());
console.log(formData);
self.uploadFile('http://www.seenode.com/index/player/upload',formData).subscribe( response => {
let url = response['data']['imagePath'];
success(url);
});
}
});
}
// 上传图片
private uploadFile(url: string,formData: any) {
var self = this;
var headers = new HttpHeaders();
headers.set("Accept","application/json");
return self.http.post(url,formData,{ headers: headers });
}
ngOnDestroy() {
tinymce.remove(this.editor);
}
}
6. 获取和设置编辑器内容<tiny-editor
[elementId]="'defined-tinymce-editor'"
(onEditorContentChange)="keyupHandler($event)"></tiny-editor>
// 监听onEditorKeyup事件
private keyupHandler(event) {
console.log('编辑器的内容:',event);
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
