這篇文章主要講解了Angular5如何整合富文本編輯器TinyMCE,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。
創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元頭屯河做網(wǎng)站,已為上家服務(wù),為頭屯河各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
1. TinyMCE簡介
TinyMCE是一個輕量級的富文本編輯器,相對于CK編輯器更加精簡,但必須滿足絕大部分場景的需要。
2.安裝和配置TinyMCE
2.1安裝TinyMCE
npm install-保存tinymce
2.2設(shè)置tinymce局部訪問(.angular-cli.json)
"scripts": [ "../node_modules/_tinymce@4.7.4/tinymce.js", "../node_modules/_tinymce@4.7.4/themes/modern/theme.js", "../node_modules/_tinymce@4.7.4/plugins/link/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/paste/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/table/plugin.js" ],
2.3定義變量
在項目中的typing.d.ts中
聲明tinymce
變量,不然會提示發(fā)現(xiàn)tinymce
聲明var tinymce:任何;
2.4拷貝皮膚文件到資產(chǎn)目錄下
Linux和MacOS
cp -r node_modules / tinymce / skins src / assets / skins
2.5安裝中文支持
中文語言包可以從這個地址下載:
https://www.tinymce.com/downl ...
下載下來的壓縮文件中會有一個langs目錄,里面有zh_CN.js,把這個目錄復(fù)制到src / assets目錄下,然后在上下中添加引用(.angular-cli.json):
“ scripts”:[ "../node_modules/_tinymce@4.7.4/tinymce.js", "../node_modules/_tinymce@4.7.4/themes/modern/theme.js", "../node_modules/_tinymce@4.7.4/plugins/link/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/paste/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/table/plugin.js", "../src/assets/langs/zh_CN.js"復(fù)制代碼 ],
3.創(chuàng)建TinyMCE組件
ng gc 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
4.使用自定義TinyMCE組件
5.增加圖片上傳功能
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(private http: HttpClient) { } 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); }); }, // 圖片上傳功能 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.獲取和設(shè)置編輯器內(nèi)容
復(fù)制代碼 // 監(jiān)聽onEditorKeyup事件 private keyupHandler(event) { console.log('編輯器的內(nèi)容:', event); }
看完上述內(nèi)容,是不是對Angular5如何整合富文本編輯器TinyMCE有進一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。