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?
'<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)
'<template>' La etiqueta debe tratarse de forma diferente #244
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #2549
[PREGUNTA] Actualizar vista de componentes al cambiar la propiedad
Hola a todos, Estoy intentando crear un componente que actualice su vista en función del valor de una propiedad '''javascript editor. DomCo...
Issue #2614
[PREGUNTA] Actualización de vista recursiva de un componente personalizado
Hola, He definido un tipo personalizado como: '''javascript editor. DomComponents.addType('customType', { modelo: { Predeterminados: { tipo...
Issue #701
Modificar un componente en el editor elimina el contenido del modelo
Lo que intento conseguir: Tengo atributos especiales de "datos-" en algunos de los componentes que extrao al editor. Cuando uno de estos se...
Issue #2212
Ampliación del componente de imagen por defecto, propiedades de redimensionabilidad ignoradas
Estoy intentando ampliar el componente de imagen por defecto. Puedo ver mi rasgo "Test", así que supongo que el componente está correctamen...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
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 →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.