欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular封裝WangEditor富文本組件的方法

 更新時(shí)間:2021年07月30日 09:15:37   作者:青城同學(xué)的博客  
這篇文章主要介紹了Angular封裝WangEditor富文本組件,得益于Angular的強(qiáng)大,封裝WangEditor組件非常簡單,需要的朋友可以參考下

富文本組件是web程序中很常用的一個(gè)組件,特別是要開發(fā)一個(gè)博客,論壇這類的網(wǎng)站后臺。

得益于Angular的強(qiáng)大,封裝WangEditor組件非常簡單

1.使用yarn或者npm安裝wangeditor

yarn add wangeditor

2.創(chuàng)建一個(gè)Angular的組件

ng g c q-wang-editor

3.封裝組件邏輯

3.1 模板

<div #wang></div>

3.2 ts邏輯

import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';

import E from "wangeditor"
import hljs from 'highlight.js'
import "node_modules/highlight.js/styles/xcode.css"

@Component({
  selector: 'q-wang-editor',
  templateUrl: './q-wang-editor.component.html',
  styleUrls: [
    './q-wang-editor.component.less',
    '../../../../../node_modules/highlight.js/styles/xcode.css'],
  encapsulation: ViewEncapsulation.None,
})
export class QWangEditorComponent implements OnInit, ControlValueAccessor,OnDestroy {

  @ViewChild("wang")
  editor!: ElementRef;

  @Input() value: string = '';

  @Input() height = 300;

  @Output() valueChange = new EventEmitter();

  onChange: ((value: string) => {}) | undefined;

  html = ''

  wangEditor: E | undefined;

  constructor() { }
  ngOnDestroy(): void {
    this.wangEditor?.destroy();
  }
  writeValue(obj: any): void {
    this.html = obj;
    this.wangEditor?.txt.html(this.html)
  }
  registerOnChange(fn: any): void {
  }
  registerOnTouched(fn: any): void {
  }

  ngOnInit(): void {
    setTimeout(() => {
      this.wangEditor = new E(this.editor.nativeElement)
      this.wangEditor.config.zIndex = 500;
      this.wangEditor.config.height = this.height
      this.wangEditor.highlight = hljs;
      this.wangEditor.config.onchange = (html: any) => {
        this.valueChange.emit(html)
        if (this.onChange) {
          this.onChange(html);
        }
      }
      this.wangEditor.config.onchangeTimeout = 500;
      this.wangEditor.create();
      this.wangEditor.txt.html(this.html)
    }, 200);
  }

}

大致思路:

  • 使用ViewChild引用html的dom元素
  • 在OnInit的成功后,初始化WangEditor編輯器,把模板中的ElementRef放入到WangEditor的容器中去,讓W(xué)angEditor去控制界面的dom操作。
  • 實(shí)現(xiàn)ControlValueAccessor,讓這個(gè)組件支持Angular的表單驗(yàn)證。
  • 實(shí)現(xiàn)ngOnDestroy,組件在銷毀的時(shí)候,調(diào)用WangEditor的destory

4.使用組件

<q-wang-editor [height]="550"></q-wang-editor> 

5.效果預(yù)覽

6.最后

一個(gè)WangEditor的Angular組件封裝就基本完成了。如果需要更多功能,比如圖片上傳,等可以再根據(jù)自己的需求增加功能即可

到此這篇關(guān)于Angular封裝WangEditor富文本組件的文章就介紹到這了,更多相關(guān)Angular WangEditor富文本組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解AngularJs中$sce與$sceDelegate上下文轉(zhuǎn)義服務(wù)

    詳解AngularJs中$sce與$sceDelegate上下文轉(zhuǎn)義服務(wù)

    這篇文章給大家詳細(xì)介紹了AngularJs提供的嚴(yán)格上下文轉(zhuǎn)義服務(wù)$sce與$sceDelegate,文中介紹的很詳細(xì),有需要的朋友們可以參考借鑒。
    2016-09-09
  • 對比分析AngularJS中的$http.post與jQuery.post的區(qū)別

    對比分析AngularJS中的$http.post與jQuery.post的區(qū)別

    這篇文章主要給大家對比分析AngularJS中的$http.post與jQuery.post的區(qū)別,十分的詳細(xì),是篇非常不錯(cuò)的文章,這里推薦給小伙伴們。
    2015-02-02
  • Angular 4依賴注入學(xué)習(xí)教程之簡介(一)

    Angular 4依賴注入學(xué)習(xí)教程之簡介(一)

    依賴注入式AngularJS的重要特性之一,依賴注入簡化了Angular解析模塊/組件之間依賴的過程。下面這篇文章主要給大家介紹了關(guān)于Angular 4依賴注入基礎(chǔ)的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • AngularJS通過$sce輸出html的方法

    AngularJS通過$sce輸出html的方法

    不知道大家有沒有發(fā)現(xiàn)在用AngularJS作為前端搭建個(gè)人博客的時(shí)候,發(fā)現(xiàn)用AngularJs輸出html的時(shí)候,瀏覽器并不解析這些html標(biāo)簽,這里我們需要其顯示angular輸出的html能被瀏覽器解析怎么辦呢?不知道Angularjs如何實(shí)現(xiàn)這種功能的通過這篇文章來看看吧。
    2016-09-09
  • angular6.0開發(fā)教程之如何安裝angular6.0框架

    angular6.0開發(fā)教程之如何安裝angular6.0框架

    這篇文章主要介紹了angular6.0開發(fā)教程之如何安裝angular6.0框架,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • AngularJS實(shí)現(xiàn)表單元素值綁定操作示例

    AngularJS實(shí)現(xiàn)表單元素值綁定操作示例

    這篇文章主要介紹了AngularJS實(shí)現(xiàn)表單元素值綁定操作,結(jié)合具體實(shí)例形式分析了AngularJS針對表單元素屬性相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Angular中響應(yīng)式表單的三種更新值方法詳析

    Angular中響應(yīng)式表單的三種更新值方法詳析

    這篇文章主要給大家詳細(xì)解析了關(guān)于Angular中響應(yīng)式表單的三種更新值方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 深入探究AngularJs之$scope對象(作用域)

    深入探究AngularJs之$scope對象(作用域)

    本篇文章主要介紹了深入探究AngularJs之$scope對象(作用域),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解決Angular.Js與Django標(biāo)簽沖突的方案

    解決Angular.Js與Django標(biāo)簽沖突的方案

    AngularJS和django的模板都是用{{}}來引用變量的,這就導(dǎo)致了沖突,所以這篇文章主要就給大家介紹了如何解決Angular.Js與Django標(biāo)簽沖突的方案,有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • AngularJS的臟檢查深入分析

    AngularJS的臟檢查深入分析

    這篇文章主要介紹了AngularJS的臟檢查深入分析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論