Issue #2839💬 RespondidoAbierto el 19 de junio de 2020por akashdesale98Reacciones 0

Añadí un componente llamado plantilla en los bloques, pero cuando intento arrastrar otros componentes dentro de ese componente plantilla, se arrastra, pero tras guardarlo elimina todos los componentes que hay dentro. ¿Cómo evitar esto?

Respuesta rápidapor artf

'<template>' La etiqueta debe tratarse de forma diferente #244

Lee la respuesta completa abajo ↓

Pregunta

Este es el código del componente de plantilla:

'''js exportar default { init(editor) { editor. DomComponents.addType('myTemplate', { isComponent: el => el.tagName == 'plantilla', modelo: { id: 'plantilla', Predeterminados: { etiquetaNombre: 'plantilla', Hoverable: Cierto, redimensionable: { minDim: 20, TC: 1, // Mejor manejador cl: 1, // Manejador izquierdo cr: 1, // Manejador derecho bc: 1 // Manipulador inferior }, Como por defecto, los rasgos están ligados a los atributos, así que para definir Su valor inicial podemos usar atributos atributos: { 'data-gjs-type': 'myTemplate' } } }, Vista: { Por ejemplo, Puedes personalizar la etiqueta en el lienzo Por defecto, la vista usará la misma etiqueta que el modelo etiquetaNombre: 'div', onRender() { this.el.innerHTML = '<div data-gjs-type="divWrapper" style="min-height:60px;"></div>'; // } } }); editor. BlockManager.add('myTemplate', { etiqueta: '<div class="mdi mdi-table"></div> <label class="gjs-block-label">Plantilla</label>', categoría: 'Componentes', Atributos: { Clase: 'GJS-Bloque-Sección' }, Selecciona el componente una vez que se haya soltado select: cierto, Esto activa un evento 'activo' en componentes caídos y en la 'imagen' reacciona abriendo el AssetManager ACTIVAR: Cierto, Contenido: '<template style="width:100%" data-gjs-type="myTemplate"></template>' }); }};


Lo depuré, así que lo conseguí:
método setComponents en el dom_components limpiarlo ... ¿Pero no entiendo por qué lo quita?
'''js
setComponents(components) {
      this.clear().addComponent(components);
}

setComponents llama a un método clear que es responsable de eliminar elementos dentro de él '''js clear() { this.getComponents() .map(i => i) .forEach(i => i.remove()); devuelvo esto; }

Comenté esto para que funcionara bien y los componentes persistieran dentro del componente ... ¿Hay alguna forma de evitar esto?

Respuestas (1)

artf25 de junio de 2020

'<template>' La etiqueta debe tratarse de forma diferente #244

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.