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

Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion

Dieser Beitrag konzentriert sich auf ein streng g...

So installieren Sie OpenSuse auf Virtualbox

Die virtuelle Maschine wird auf dem Hostcomputer ...

Einführung in die Vue-Grundlagen: Installation und Verwendung von Vuex

Inhaltsverzeichnis 1. Was ist vuex 2. Installatio...

Dieser Artikel hilft Ihnen, JavaScript-Variablen und -Datentypen zu verstehen

Inhaltsverzeichnis Vorwort: Freundliche Tipps: Va...

Detaillierte Schritte zur Installation der MySQL 5.6 X64-Version unter Linux

Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...

Zehn nützliche und einfache MySQL-Funktionen

Funktion 0. Aktuelle Uhrzeit anzeigen Befehl: sel...

CSS Paint API: Ein CSS-ähnliches Zeichenbrett

1. Canvas-Bilder als CSS-Hintergrundbilder verwen...

Detaillierte Schritte zur Installation und Verwendung von VMware ESXi 6.5

Inhaltsverzeichnis Einführung Architektur Vorteil...

So importieren, registrieren und verwenden Sie Komponenten in Stapeln in Vue

Vorwort Komponenten sind etwas, das wir sehr häuf...