Issue #2952💬 RespondidoAbierto el 11 de agosto de 2020por krishnaeverestengineeringReacciones 0

El componente personalizado no funciona después de guardar.

Respuesta rápidapor DmitryTar1

Deberías añadir algún tipo a tu componente y luego analizarlo en isComponent Por ejemplo, el enlace de botones similar componentes const = editor. DomComponents; const link = components.getType('link'); components.addType('custom-link-button', { modelo: link.model.extend({ defaults: Object.assign({}, link.model.protot...

Lee la respuesta completa abajo ↓

Pregunta

Hola,

Tengo un componente personalizado de Button-Link creado, y cuando arrastré el contenido a Canvas por primera vez, el componente detecta sus atributos y estilos. Pero después de guardar el componente y recargar la página, falta el tipo de componente personalizado en ese componente, en su lugar muestra el componente tipo de enlace. ¿Cómo preservar los componentes personalizados incluso después de guardar?

Respuestas (3)

DmitryTar113 de agosto de 2020
Fragmento de códigoTEXT
Deberías añadir algún tipo a tu componente y luego analizarlo en isComponent
Por ejemplo, el enlace de botones similar
componentes const = editor. DomComponents;
  const link = components.getType('link');

components.addType('custom-link-button', {
    modelo: link.model.extend({
      defaults: Object.assign({}, link.model.prototype.defaults, {
        atributos: { 'link-extended': 'botón personalizado-link-button },
      }),
    }, {
      isComponent: (el) => {
        Sea resultado;

if (el.tagName == 'A' & el.attributes['link-extended'] 
          && el.attributes['link-extended'].value === 'custom-link-button') {
          resultado = {
            Tipo: 'botón de enlace personalizado',
            editable: 0
          };

El enlace solo es editable si, al menos, uno de sus
          Children es un nodo de texto (no uno vacío)
          hijos const = el.childNodes;
          const len = hijos.longitud;
          if (!len) elimina result.editable;

para (sea i = 0; i < len; i++) {
            hijo const = hijos[i];

if (child.nodeType == 3 && child.textContent.trim() != '') {
              eliminar result.editable;
              pausa;
            }
          }
        }
        
resultado de retorno;
      }
    }),
    Ver: link.view
  });
Ju99ernaut17 de agosto de 2020

@krishnaeverestengineering ¿Cómo guardas y cargas tu trabajo?

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.