Issue #2552✓ ResueltoAbierto el 6 de febrero de 2020por kickbkReacciones 2

Solo se permite que se elimine un componente

Respuesta rápidapor pouyamiralayi2

#25151 #25152

Lee la respuesta completa abajo ↓

Pregunta

Perdón por la pregunta de principiante, pero si tengo un componente de campo de texto y solo quiero permitir que el usuario coloque un número específico de ellos en el lienzo, digamos solo uno. ¿Cómo puedo limitarlo? ¿Quizás una forma que muestre una alerta para explicar que no pueden añadir otro componente de campo de texto al lienzo a menos que eliminen el existente?

Respuestas (2)

👍 Muy útilpouyamiralayi13 de febrero de 2020
kickbk6 de febrero de 2020

Así que ahora mismo tengo una solución muy fea:

	editor.on('load',
		función() {
			var existingComponents = editor.getComponents();
			if (existentingComponents.models.filter(function(e) { return e.attributes.tagName === 'form'; }). longitud > 0) {
				$($($("cuerpo .gjs-bloque-categoría")[1]).find(".gjs-block")[0]).hide();
			}
		}
	);

editor.on('component:add', component => {
		si (component.is('forma')) {
			$($($("cuerpo .gjs-bloque-categoría")[1]).find(".gjs-block")[0]).hide();
		}
	});
	editor.on('component:remove', component => {
		si (component.is('forma')) {
			$($($("cuerpo .gjs-bloque-categoría")[1]).encontrar(".gjs-bloque")[0]).mostrar();
		}
	});

Esto básicamente mira si el componente está en el lienzo cuando está cargado. Si es así, entonces oculta el botón de componente arrastrable. Aquí podría usar una mejor forma de ocultar el botón, ¿cómo? Puedo acceder al componente con 'const form = editor. BlockManager.get('form');' pero ¿cómo lo oculto una vez que lo tengo? Luego tengo oyentes para añadir y quitar para ocultar y mostrar el botón de componente, el mismo problema que antes.

Parece una forma horrible de hacerlo. Debe de haber alguna opción que me esté perdiendo para "solo uno permitido". ¿Alguna sugerencia?

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.