Issue #553💬 RespondidoAbierto el 21 de noviembre de 2017por baxxosReacciones 2

Añadir nuevos componentes a los existentes

Respuesta rápidapor ryandeba1

Desafortunadamente, no conozco una forma sencilla de obtener un objeto componente específico sin iterar recursivamente por ellos para encontrar el que quieres, ¡pero suena como una gran idea! Quizá puedas hacer algo así para obtener todos los componentes y luego filtrar el que quieras (este código no está completament...

Lee la respuesta completa abajo ↓

Pregunta

Hola,

Me gustaría preguntar si existe algún soporte o API existente para añadir nuevos componentes a una lista de componentes existente (por ejemplo, después de obtenerlos o generarlos dinámicamente). Estoy hablando de algo así:

editor.addComponent({
  padre: 'parent_id',
  componente: '<p>Nuevo componente hijo</p>'
})

He estudiado la documentación y lo más parecido que he encontrado es la función ''add Components()'''. Desafortunadamente, esta función no especifica ningún objetivo donde deba colocarse el nuevo componente.

Pregunto esto porque mi intención es usar GrapesJS de forma colaborativa en tiempo real y enviar toda la representación HTML de un lado a otro tras cada acción del usuario es demasiado lento.

Un cordial saludo, Michal

Respuestas (3)

ryandeba22 de noviembre de 2017
Fragmento de códigoTEXT
Desafortunadamente, no conozco una forma sencilla de obtener un objeto componente específico sin iterar recursivamente por ellos para encontrar el que quieres, ¡pero suena como una gran idea!

Quizá puedas hacer algo así para obtener todos los componentes y luego filtrar el que quieras (este código no está completamente probado, pero espero que te ayude a empezar en la dirección correcta si te quedas atascado):

function getAllComponents(component) {
		componente = componente || editor. DomComponents.getWrapper();

var components = component.get("components").models;
		component.get("components").forEach(function(component) {
			components = components.concat(getAllComponents(component));
		});

componentes de retorno;
	};

'getAllComponents().filter(function(component) { return component.cid == "someID"; } )[0]'
baxxos27 de noviembre de 2017

Gracias por vuestras respuestas, creo que mi pregunta ya está respondida y no hay mucho más que añadir. Voy a cerrar esto ahora, sin embargo, el método 'find()' sería una adición bienvenida a este increíble framework.

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 →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

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