es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Instancia TinyMCE Angular 8

Tengo un problema en la aplicación de página única Tinymce angular 8.
¿Cómo se elimina la instancia del componente o
¿Cómo puedo forzar la re-inicialización del TinyMCE?

Gracias,
Pong.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Soluciones para Problemas en Tinymce Angular 8 SPA

    Removiendo la Instancia del Componente

    Para remover la instancia del componente, puedes usar el gancho de ciclo de vida ngOnDestroy para limpiar cualquier recurso utilizado por el editor TinyMCE:

    import { Component, OnDestroy } from '@angular/core';
    import tinymce from 'tinymce';
    
    @Component({
      selector: 'app-tinymce',
      template: '<textarea class="tinymce"></textarea>',
    })
    export class TinymceComponent implements OnDestroy {
      editor: any;
    
      ngAfterViewInit() {
        tinymce.init({
          selector: 'textarea.tinymce',
        }).then(editor => this.editor = editor);
      }
    
      ngOnDestroy() {
        this.editor.remove();
      }
    }
    

    Forzando a Reiniciar TinyMCE

    Para forzar a TinyMCE a reiniciar, puedes usar el método init() con un nuevo objeto de configuración:

    import { Component } from '@angular/core';
    import tinymce from 'tinymce';
    
    @Component({
      selector: 'app-tinymce',
      template: '<textarea class="tinymce"></textarea>',
    })
    export class TinymceComponent {
      editor: any;
    
      ngAfterViewInit() {
        tinymce.init({
          selector: 'textarea.tinymce',
          setup: (editor) => {
            this.editor = editor;
          }
        });
      }
    
      reInitialize() {
        tinymce.remove(this.editor);
    
        tinymce.init({
          selector: 'textarea.tinymce',
          setup: (editor) => {
            this.editor = editor;
          }
        });
      }
    }
    

    Aquí, eliminamos la instancia anterior del editor usando el método remove() y luego llamamos a init() nuevamente con un nuevo objeto de configuración. Nota que guardamos una referencia a la instancia de editor actual en la propiedad editor del componente.

Comments are closed.