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

LinkedIn wird überarbeitet, um das Surfen auf der Website zu vereinfachen

Das geschäftliche Social-Networking-Portal Linked...

Details zu 7 Arten der Komponentenkommunikation in Vue3

Inhaltsverzeichnis 1. Kommunikationsmethode für V...

Details zum JavaScript-Abschluss

Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...

Führen Sie die Initialisierungs-SQL aus, wenn Docker MySQL startet

1. Ziehen Sie das Mysql-Image docker pull mysql:5...

Grundlegende Verwendung von Javascript-Array-Includes und -Reduces

Inhaltsverzeichnis Vorwort Array.Prototyp.enthält...

Mehrere Lösungen zum Vergessen des MySQL-Passworts

Lösung 1 Deinstallieren Sie vollständig und lösch...

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....

Umfassende Website-Bewertungslösung

<br />Manchmal werden Ihnen möglicherweise F...

Benutzerdefiniertes Auswahlfeld für die Webseite Auswählen

Jeder ist wahrscheinlich mit dem Auswahl-Dropdown...

TimePicker im Element deaktiviert einen Teil der Zeit (deaktiviert auf Minuten)

Die Projektanforderungen lauten: Datum und Uhrzei...

12 nützliche Array-Tricks in JavaScript

Inhaltsverzeichnis Array-Deduplizierung 1. from()...

Implementierung eines einfachen Rechners auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Vue implementiert die richtige Slide-Out-Layer-Animation

In diesem Artikelbeispiel wird der spezifische Co...