Excluye algunos componentes del HTML final (Multinivel)
Esta es mi solución: domc.addType('layout', { model: defaultModel.extend( { valores predeterminados: Object.assign( {}, defaultModel.prototype.defaults, { removible: falso, arrastrable: falso, Droppable: falso, Badgable: falso, Estilizado: falso, resaltable: falso, copiable: falso, redimensionable: falso, editable: fa...
Lee la respuesta completa abajo ↓Pregunta
Hola, Tengo una pregunta sobre cómo excluir HTML de editor->getHtml().
Mi estructura es algo así.
Padre
- Child -- Niño --- Child
Quiero guardar el HTML del último hijo. ¿Cómo hacerlo?
Respuestas (2)
Esta es mi solución: domc.addType('layout', { model: defaultModel.extend( { valores predeterminados: Object.assign( {}, defaultModel.prototype.defaults, { removible: falso, arrastrable: falso, Droppable: falso, Badgable: falso, Estilizado: falso, resaltable: falso, copiable: falso, redimensionable: falso, editable: false, capas: falso, seleccionable: false, Hoverable: falso, propagar: [ 'removible', 'arrastrable', 'dejable caer', 'badgable', 'estilizable', 'resaltable',
'copiable',
'redimensionable',
'editable',
'capaz',
'seleccionable',
'flotable'
],
jsUrl: config.jsUrl,
script: función () {
AssetManager.loadJS('{[ jsUrl ]}');
}
}
),
toHTML: function() {
function getHtml(components) {
Que yo;
para (i=0; i < components.length; i++)
{
Sea component = components[i];
if (component.attributes.tagName !== 'div')
continúa;
if (component.attributes.attributes.hasOwnProperty('data-page-editor-content'))
{
componente de retorno;
}
si no, si (component.atributos.componentes.models.length > 0)
{
return getHtml(component.attributes.components.models);
}
}
}
let editorContent = getHtml(this.attributes.components.models);
editorContent.script = '';
return defaultType.model.prototype.toHTML.apply(editorContent);
}
},
{
isComponent(el) {
if(el.id === 'js-wrapper') {
return {
Tipo: 'Layout'
};
}
}
}
),
vista: defaultType.view,
});
domc.addType('editor-content', {
model: defaultModel.extend(
{
valores predeterminados: Object.assign(
{},
defaultModel.prototype.defaults,
{
removible: cierto,
Arrastrable: Cierto,
Droppable: Cierto,
Badgable: Cierto,
Estilizado: Cierto,
Resaltable: Cierto,
Copiable: Cierto,
redimensionable: cierto,
Editable: Cierto,
Layerable: Cierto,
Seleccionable: Cierto,
Hoverable: Cierto,
propagar: [
'removible',
'arrastrable',
'dejable caer',
'badgable',
'estilizable',
'resaltable',
'copiable',
'redimensionable',
'editable',
'capaz',
'seleccionable',
'flotable'
],
}
)
},
{
isComponent(el) {
if(el.nodeType === Node.ELEMENT_NODE && el.hasAttribute('data-page-editor-content')) {
return {
Tipo: 'Editor-Content'
};
}
}
}
)
});Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1588
[PREGUNTA]
¡Hola a todos y gracias por vuestro magnífico trabajo y por esta API! Tengo una pregunta sobre la caja, que envuelve todos los componentes...
Issue #1709
[PREGUNTA] ¿Es posible afectar el estilismo de los componentes hijos a través del gestor de estilos del componente padre?
¡Hola! Proyecto increíble y gracias por tu aportación. Me gustaría saber si es posible cambiar el estilo de un componente hijo a través del...
Issue #1966
[PREGUNTA] Bucle sobre todos los componentes
Hola a todos, Quiero crear un conector para cada botón que añada al lienzo. Esto está funcionando perfectamente. Sin embargo, cuando recarg...
Issue #1864
[PREGUNTA] ¿La mejor manera de escuchar los cambios en el HTML final?
Hola, Solo tenía una pregunta rápida porque no sabía cómo hacerlo o no encontré ningún problema relacionado. Solo intento llamar a una func...
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 →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.