So kapseln Sie die Rich-Text-Komponente von WangEditor in Angular

So kapseln Sie die Rich-Text-Komponente von WangEditor in Angular

Die Rich-Text-Komponente ist eine sehr häufig verwendete Komponente in Webprogrammen, insbesondere bei der Entwicklung eines Website-Backends wie einem Blog oder Forum.

Dank der Leistungsfähigkeit von Angular ist die Kapselung von WangEditor-Komponenten sehr einfach

1. Installieren Sie wangeditor mit yarn oder npm

Garn hinzufügen Wangeditor

2. Erstellen Sie eine Angular-Komponente

ng gc q-wang-editor

3. Kapseln Sie die Komponentenlogik

3.1 Vorlage

<div #wang></div>

3.2 ts-Logik

importiere { Komponente, ElementRef, EventEmitter, Eingabe, OnDestroy, OnInit, Ausgabe, ViewChild, ViewEncapsulation } von '@angular/core';
importiere { ControlValueAccessor } aus '@angular/forms';

importiere E von „wangeditor“
importiere hljs aus „highlight.js“
importiere "node_modules/highlight.js/styles/xcode.css"

@Komponente({
  Selektor: 'q-wang-editor',
  Vorlagen-URL: "./q-wang-editor.component.html",
  styleUrls: [
    „./q-wang-editor.component.less“,
    '../../../../../node_modules/highlight.js/styles/xcode.css'],
  Kapselung: ViewEncapsulation.None,
})
Exportklasse QWangEditorComponent implementiert OnInit, ControlValueAccessor,OnDestroy {

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

  @Input()-Wert: Zeichenfolge = '';

  @Input() Höhe = 300;

  @Output() Wertänderung = neuer EventEmitter();

  beiÄnderung: ((Wert: Zeichenfolge) => {}) | nicht definiert;

  html = ''

  wangEditor: E | nicht definiert;

  Konstruktor() { }
  ngOnDestroy(): void {
    dies.wangEditor?.destroy();
  }
  SchreibeWert(Objekt: beliebig): void {
    dies.html = obj;
    dies.wangEditor?.txt.html(diese.html)
  }
  registerOnChange(fn: any): void {
  }
  registerOnTouched(fn: any): void {
  }

  ngOnInit(): void {
    setzeTimeout(() => {
      dieser.wangEditor = neues E(dieser.editor.nativeElement)
      dies.wangEditor.config.zIndex = 500;
      this.wangEditor.config.height = diese.höhe
      dies.wangEditor.highlight = hljs;
      this.wangEditor.config.onchange = (html: beliebig) => {
        dies.Wertänderung.emit(html)
        wenn (dies.beiÄnderung) {
          dies.onChange(html);
        }
      }
      this.wangEditor.config.onchangeTimeout = 500;
      dies.wangEditor.create();
      dies.wangEditor.txt.html(diese.html)
    }, 200);
  }

}

Die Grundidee:

  • Verwenden Sie ViewChild, um auf das DOM-Element von HTML zu verweisen
  • Initialisieren Sie nach dem Erfolg von OnInit den WangEditor-Editor, fügen Sie das ElementRef in der Vorlage in den Container von WangEditor ein und lassen Sie WangEditor den DOM-Betrieb der Schnittstelle steuern.
  • Implementieren Sie ControlValueAccessor, um dieser Komponente die Unterstützung der Angular-Formularvalidierung zu ermöglichen.
  • Implementieren Sie ngOnDestroy. Wenn die Komponente zerstört wird, rufen Sie WangEditors destroy auf.

4. Komponenten verwenden

<q-wang-editor [Höhe]="550"></q-wang-editor>

5. Effektvorschau

6. Zuletzt

Die Angular-Komponentenkapselung von WangEditor ist grundsätzlich abgeschlossen. Wenn Sie weitere Funktionen, wie beispielsweise das Hochladen von Bildern, benötigen, können Sie Funktionen entsprechend Ihren Anforderungen hinzufügen.

Dies ist das Ende dieses Artikels über die Angular-Kapselung der Rich-Text-Komponente von WangEditor. Weitere relevante Inhalte zur Angular-Rich-Text-Komponente von WangEditor finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung zweier Methoden zur Implementierung der bidirektionalen Bindung benutzerdefinierter Komponenten in Angular
  • Die untergeordnete Angular5-Komponente überwacht die Änderung des von der übergeordneten Komponente übergebenen Werts
  • So verwenden Sie Angular CLI zum Generieren benutzerdefinierter Dateien und Komponenten
  • Beispiel für das regelmäßige Aktualisieren und Löschen von Timern in Angular2-Komponenten
  • Angular6 schreibt ein einfaches Select-Komponentenbeispiel

<<:  Detailliertes Tutorial zur Installation von Python 3.8.1 unter Linux

>>:  Acht gängige SQL-Verwendungsbeispiele in MySQL

Artikel empfehlen

Was ist em? Einführung und Konvertierungsmethode von em und px

Was ist sie? „em“ bezieht sich auf die Schrifthöhe...

Welche Codes sollte ich beherrschen, wenn ich Webdesign lerne?

In diesem Artikel werden einige der Techniken ausf...

React führt antd-mobile+postcss ein, um ein mobiles Terminal zu erstellen

Installieren Sie antd-mobile Globaler Import npm ...

25 neue nützliche Icon-Sets zum Download im Ausland

1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

So ändern Sie das MySQL-Datenbankdateiverzeichnis in Ubuntu

Vorwort Der Ubuntu-Server des Unternehmens platzi...

Detaillierte Erklärung generischer Fälle in TypeScript

Definition von Generika // Anforderung 1: Generik...

Docker-Overlay realisiert die Container-Kommunikation zwischen Hosts

Inhaltsverzeichnis 1. Docker-Konfiguration 2. Ers...

CSS 3.0 Text Hover Jump Spezialeffekte-Code

Hier ist ein mit CSS 3.0 implementierter Textschw...

So erstellen Sie PHP7 mit einem benutzerdefinierten Docker-Image

Führen Sie zunächst eine einfache Docker-Installa...

Ein kurzer Vergleich von Props in React

Inhaltsverzeichnis Props-Vergleich von Klassenkom...

Transplantieren des Befehls mkfs.vfat in Busybox unter Linux

Um die Lebensdauer der Festplatte zum Speichern v...

Mysql-Operation zum Abrufen von Tabellenkommentarfeldern

Ich werde nicht viel Unsinn erzählen, schauen wir...