Componente personalizado usado como HTML en bloque
Pregunta
He ampliado el componente de imagen por defecto '''js Export default (editor) => { const domComponents = editor. DomComponents; const imageType = domComponents.getType('image');
domComponents.addType('image-extended', { model: imageType.model.extend({ defaults: Object.assign({}, imageType.model.prototype.defaults, { nombre: 'Imagen extendida', }) }, { isComponent(el) { si (el.tagName === 'img' && el.classList && el.classList.contains('img-extended')) { return {type: 'image-extended'}; } } }), ver: imageType.view }); };
Luego tengo un bloque donde voy a usar la imagen extendida. Lo siguiente funciona bien.
'''js
Export default (editor) => {
Sea bm = editor. Jefe de bloque;
bm.add('ImageExtended').set({
etiqueta: 'Imagen extendida',
categoría: 'Diseño',
Atributos: {Clase: 'FA FA-Imagen'},
Contenido: {
Tipo: 'Imagen extendida',
Clases: ['IMG-Extendido'],
},
});
};
Sin embargo, este bloque contendrá HTML anidado (una especie de tarjeta) y uno de los hijos debe ser este componente de imagen personalizado. Usando lo siguiente, el elemento img no se reconoce como mi componente de imagen personalizada. '''js Export default (editor) => { Sea bm = editor. Jefe de bloque;
bm.add('Card').set({ etiqueta: 'Tarjeta', categoría: 'Diseño', Atributos: {Clase: 'FA FA-Imagen'}, Contenido: '<div class="card"><img class="img-extended"></div>', }); };
Respuestas (2)
'el.tagName === 'IMG''
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 #738
La imagen volvió al tamaño original tras redimensionarse
Hola, tengo un problema extraño con el componente: Tengo 2 tipos: imagen e icono '''js domComponents.addType('icon', { model: imageModel.ex...
Issue #494
Colocar el bloque como componente programáticamente
He creado un tipo personalizado y un bloque '''js DomComponents.addType('MyComponent', { ... }); BlockManager.add('Component', { content: {...
Issue #1849
¿Qué me estoy perdiendo?
¿Qué me estoy perdiendo para que la etiqueta "div" se llame "Div" por defecto? (Anular el valor predeterminado)
Issue #1255
[PREGUNTA]: ¿Cómo configurar el contenido html del editor a partir de un componente personalizado?
Estoy teniendo problemas para que un bloque+componente personalizado muestre su plantilla HTML dentro del editor de uvas. Dentro del HTML e...
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.