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

Neuer Ansatz zum Umschalten der Tab-Leiste mit zwei Auswahlmöglichkeiten in Vue

Problembeschreibung Wenn wir an einem Projekt arb...

Überlegungen zur Partitionierung von MySQL-Datenbanktabellen [empfohlen]

Die Tabellenpartitionierung unterscheidet sich vo...

Facebooks nahezu perfekte Neugestaltung aller Internetdienste

<br />Originalquelle: http://www.a-xuan.cn/?...

Einführung in den CSS BEM-Benennungsstandard (empfohlen)

1 Was ist der BEM-Namensstandard Bem ist die Abkü...

Sequentielles und zufälliges Schreiben auf Linux-Festplatten

1. Einleitung ● Zufälliges Schreiben führt dazu, ...

Designtheorie: Die Grundlagen der Schriftgestaltung

<br />Worte sind das unvermeidliche Produkt ...

Detaillierte Erläuterung der sieben Wertübertragungsmethoden von Vue

1. Vom Vater zum Sohn Definieren Sie das props Fe...

Analyse der Verwendung der Funktion zur sofortigen Ausführung in JavaScript

Wir wissen, dass eine Funktion im Allgemeinen auf...

Erläuterung der Methode zum Schreiben von SQL-Anweisungen zum Einfügen

Methode 1: INSERT INTO t1(Feld1,Feld2) VALUE(v001...

So importieren Sie schnell Daten in MySQL

Vorwort: Im täglichen Studium und bei der Arbeit ...