广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Angular封装WangEditor富文本组件的方法
  • 564
分享到

Angular封装WangEditor富文本组件的方法

2024-04-02 19:04:59 564人浏览 薄情痞子
摘要

富文本组件是WEB程序中很常用的一个组件,特别是要开发一个博客,论坛这类的网站后台。 得益于angular的强大,封装WangEditor组件非常简单 1.使用yarn或者npm

富文本组件是WEB程序中很常用的一个组件,特别是要开发一个博客,论坛这类的网站后台。

得益于angular的强大,封装WangEditor组件非常简单

1.使用yarn或者npm安装wangeditor

yarn add wangeditor

2.创建一个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的容器中去,让WangEditor去控制界面的dom操作。
  • 实现ControlValueAccessor,让这个组件支持Angular的表单验证。
  • 实现ngOnDestroy,组件在销毁的时候,调用WangEditor的destory

4.使用组件

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

5.效果预览

6.最后

一个WangEditor的Angular组件封装就基本完成了。如果需要更多功能,比如图片上传,等可以再根据自己的需求增加功能即可

到此这篇关于Angular封装WangEditor富文本组件的文章就介绍到这了,更多相关Angular WangEditor富文本组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Angular封装WangEditor富文本组件的方法

本文链接: https://www.lsjlt.com/news/131462.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Angular封装WangEditor富文本组件的方法
    富文本组件是web程序中很常用的一个组件,特别是要开发一个博客,论坛这类的网站后台。 得益于Angular的强大,封装WangEditor组件非常简单 1.使用yarn或者npm...
    99+
    2022-11-12
  • vue日历组件的封装方法
    本文实例为大家分享了vue日历组件的封装代码,供大家参考,具体内容如下 图示 封装的组件的代码如下 <template>   <div class="calend...
    99+
    2022-11-13
  • Vue分页组件的封装方法
    前言 这个是基于vue2的分页封装,仿照elementUI而写的组件。 效果如图 话不多说,直接上代码 <template>   <div class="pagi...
    99+
    2022-11-13
  • vue面包屑组件的封装方法
    vue中自己封装面包屑组件,供大家参考,具体内容如下 要实现效果 前言 很多电商类产品都需要实现面包屑导航,用来优化用户体验 一、初级面包屑封装组件 1.封装基础结构组件 Brea...
    99+
    2022-11-12
  • vue3封装计时器组件的方法
    背景 在一些商城类网页中打开商品详情都会有一个计数器来选择购买的数量,这样的计时器不仅会在商品详情页面显示还会在购物车里面有,那就可以把计时器封装成组件,以便于更好的复用以及后期维护...
    99+
    2022-11-12
  • vue3封装轮播图组件的方法
    目的 封装轮播图组件,直接使用,具体内容如下 大致步骤 准备my-carousel组件基础布局,全局注册 准备home-banner组件,使用my-carousel...
    99+
    2022-11-12
  • React封装弹出框组件的方法
    本文实例为大家分享了React封装弹出框组件的方法,供大家参考,具体内容如下 效果图 文件目录 alertList.tsx 用于容纳弹出框的容器 import React f...
    99+
    2022-11-13
  • Mysql对文件操作的封装方法
    这篇文章主要讲解了“Mysql对文件操作的封装方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql对文件操作的封装方法”吧! ...
    99+
    2022-10-18
  • vue3.0手动封装分页组件的方法
    本文实例为大家分享了vue3.0手动封装分页组件的具体代码,供大家参考,具体内容如下 1.父组件引入 src/views/goods/components/goods-comment...
    99+
    2022-11-12
  • AntDesign封装年份选择组件的方法
    常见问题 在平时的业务场景中,我们需要用到一个年份的选择组件。但是在antd2.x的版本中,antd的DatePicker组件还没有mode属性,不能单独设置为年份选择器。虽然ant...
    99+
    2022-11-13
  • vue.js管理后台table组件封装的方法
    目录问题分析 为什么封装 封装的内容都有哪些 封装table组件 确认数据格式 封装组件 封装全局组件 table组件封装 分页组件封装 数据定义 封装 总结最近开了新的项目,简单说...
    99+
    2022-11-12
  • vue3手动封装弹出框组件message的方法
    本文实例为大家分享了vue3手动封装弹出框组件message的具体代码,供大家参考,具体内容如下 封装组件 <template> <Transition n...
    99+
    2022-11-12
  • React日期时间显示组件的封装方法
    本文实例为大家分享了React日期时间显示组件的封装具体代码,供大家参考,具体内容如下 时间日期展示器 import ProtoType from 'prop-types'; im...
    99+
    2022-11-13
  • vue封装图片滑块验证组件的方法
    本文实例为大家分享了vue封装图片滑块验证组件的具体代码,供大家参考,具体内容如下 滑块验证组件整体不难,主要在于设置图片的样式问题,想要让背景图充满div,就需要滑块图片也跟随等比...
    99+
    2022-11-13
  • react结合typescript封装组件的方法是什么
    今天小编给大家分享一下react结合typescript封装组件的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。项...
    99+
    2023-07-06
  • 一文详解Angular父子组件间传数据的方法
    子传父 @Output()Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。1. 子组件定义@Output子组件定义@Outputexport class ChildComponent { /...
    99+
    2023-05-14
    javascript Angular
  • 基于React封装一个组件的方法是什么
    这篇文章主要讲解了“基于React封装一个组件的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于React封装一个组件的方法是什么”吧!antd 是如何封装组件的仓库地址divi...
    99+
    2023-06-29
  • Vue封装通过API调用的组件的方法详解
    目录前言封装通过API调用的组件的设计思路封装组件的方式单例模式定义单例模式的优缺点1、优点2、缺点单例模式适用场景使用API调用组件的示例拓展:父子组件通信最后前言 在前端开发中,...
    99+
    2022-12-26
    前端vue封装api然后调用 vue api封装 vue中组件封装
  • Python读取配置文件-ConfigParser的二次封装方法
    目录Python读取配置文件-ConfigParser二次封装直接上上代码读取配置文件&&简单封装1.configparser模块2.configparser读取文件...
    99+
    2022-11-13
  • Vue使用Swiper封装轮播图组件的方法详解
    目录Swiper为什么要封装组件开始封装1.下载安装Swiper2.引入css样式文件3.引入js文件4.把官网使用方法中的HTML结构复制粘贴过来5.初始化Swiper自定义效果完...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作