IsComponent() no se invoca
'isComponent' se utiliza dentro del analizador analizador cuando añades una cadena HTML y no declaras explícitamente su tipo (por ejemplo, '<div data-gjs-type="my-custom-type">.. ' ya indica el tipo, así que 'isComponent' no es necesario). Si pasas un objeto 'content: { type: "alea-video" }', se omite el análisis anal...
Lee la respuesta completa abajo ↓Pregunta
Estoy intentando crear un plugin, pero tengo un problema con isComponent. Mi componente no lo llama cuando el editor carga el código, este es el script. ¿Dónde me equivoco?
Índice
var editor = grapesjs.init({
Altura: '100%',
Offsets: 1,
avisoOnUnload: 0,
storageManager: { autoload: 1 },
Contenedor: '#gjs',
fromElement: cierto,
Plugins: ['grapesjs-plugin-boilerplate']
});
window.editor = editor;
Componente
export default (editor, config = {}) => {
const domc = editor. DomComponents;
const defaultType = domc.getType('default');
const defaultModel = defaultType.model;
const defaultView = defaultType.view;
domc.addType("alea-video", {
model: defaultModel.extend({
},{
isComponent(el) {
if(el.getAttribute && el.getAttribute('data-gjs-type')) {
return {
Tipo: 'alea-video'
};
}
}
}),
view: defaultView.extend({
etiquetaNombre: 'div',
render: función () {
defaultType.view.prototype.render.apply(esto, argumentos);
var iframe = document.createElement("iframe");
var value = document.createElement("div");
iframe.setAttribute('width', '560');
iframe.setAttribute('altura', '316');
iframe.setAttribute('frameborder', '0');
iframe.setAttribute('allowfullscreen', '');
iframe.setAttribute('src', '//www.youtube.com/embed/DaDjyRH_3DA');
value.classList.add ("video-contenedor");
valor.estilo.fondoColor = 'rojo';
value.setAttribute('data-et','video');
value.setAttribute('data-provider','yt');
value.appendChild(iframe);
this.el.appendChild(valor);
devuelvo esto;
},
})
});
}
Bloquear
export default (editor, config = {}) => {
const bm = editor. Jefe de bloque;
bm.add("bm-alea-video", {
etiqueta: "Vídeo",
categoría: "Básico",
Atributos: { Clase: "FA FA-MAP" },
Contenido: { Tipo: "Alea-Video" }
})
}
Respuestas (2)
'isComponent' se utiliza dentro del analizador analizador cuando añades una cadena HTML y no declaras explícitamente su tipo (por ejemplo, '<div data-gjs-type="my-custom-type">.. ' ya indica el tipo, así que 'isComponent' no es necesario). Si pasas un objeto 'content: { type: "alea-video" }', se omite el análisis analizable
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 #1030
[Pregunta] Eventos de disparo con componentes personalizados
Estoy intentando crear un plugin para Grapesjs con algunos componentes personalizados, y tengo problemas para activar eventos e interactuar...
Issue #1897
[Pregunta] vista vs código
Hola... ¡Y perdón por mi inglés! Antes que nada, enhorabuena por este marco. Estoy intentando usar GrapeJS para crear mi propio editor de W...
Issue #384
Crear y editar plantilla en base de datos
Este es mi código para crear una nueva plantilla e insertar el html en línea con estilo en la base de datos: '''js var editor = grapesjs.in...
Issue #1818
[Pregunta]: Elaborando uvas trabajando con angular7 y material
Estoy intentando integrar la librería con Angular7, pero tuve problemas al mover el contenedor '<div id="gjs"></div>' al componente materia...
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.