Issue #2285💬 RespondidoAbierto el 22 de septiembre de 2019por megargReacciones 2

No se puede añadir un rasgo nuevo

Respuesta rápidapor pouyamiralayi1

¡Hola! ¡No veo ninguna razón por la que tu primer enfoque no funcione! ¿Has probado este [https://github.com/artf/grapesjs/issues/2251#issuecomment-530587007)? Salud.

Lee la respuesta completa abajo ↓

Pregunta

Estoy intentando añadir un rasgo nuevo pero no funciona. He investigado bastante y probado varias formas, pero sigue sin parecer funcionar. ¿Podríais por favor aclararme qué puedo estar haciendo mal?

Opción 1:


Función predeterminada de exportación (editor, opt = {}) {
  const c = opt;
  const pfx = c.formClsPfx;
  const FORMIO_TYPE = 'jmi_form';

editor. DomComponents.addType(FORMIO_TYPE, {

modelo: {
      Predeterminados: {
        formURL: c.formURL,
        Droppable: falso,
        Rasgos: [
          Las cadenas se convierten automáticamente en tipos de texto
          'name', // Igual que: { type: 'text', name: 'name' }
        ],
      }
    },
    isComponent(el) {
      si (el.getAttribute & &
        el.getAttribute('data-gjs-type') === FORMIO_TYPE) {
        return {
          Tipo: FORMIO_TYPE
        };
      }
    },
    Vista: {
      init() {
        const comps = this.model.get('components');

Añade una plantilla básica de dynamic_form si aún no está inicializada
        if (!comps.length) {
          comps.reset();
          Ten en cuenta que tenemos "data-gjs-editable="false" abajo en la etiqueta div
          Consultar: https://github.com/artf/grapesjs/issues/422
          comps.add('
          <div data-gjs-editable="false" data-js="jmi_form" className="${pfx}"> Este es el componente de prueba </div>
          `);
        }
      } //Fin de la entrada
    },

});   Fin de domc.addType
} //Fin de la función de exportación  

Opción2: Intentando añadir programáticamente. Sigo el documento de: https://grapesjs.com/docs/modules/Traits.html#add-traits-to-components


Función predeterminada de exportación (editor, opt = {}) {
  const c = opt;
  const pfx = c.formClsPfx;
  const FORMIO_TYPE = 'jmi_form';

editor. DomComponents.addType(FORMIO_TYPE, {

modelo: {
      Predeterminados: {
        formURL: c.formURL,
        Droppable: falso,
        traits(component) {
          resultado const = [];
          result.push('nombre');
          console.log("aquí dentro##########")
          resultado de retorno;
        },
      }
    },
    isComponent(el) {
      si (el.getAttribute & &
        el.getAttribute('data-gjs-type') === FORMIO_TYPE) {
        return {
          Tipo: FORMIO_TYPE
        };
      }
    },
    Vista: {
      init() {
        const comps = this.model.get('components');

Añade una plantilla básica de dynamic_form si aún no está inicializada
        if (!comps.length) {
          comps.reset();
          Ten en cuenta que tenemos "data-gjs-editable="false" abajo en la etiqueta div
          Consultar: https://github.com/artf/grapesjs/issues/422
          comps.add('
          <div data-gjs-editable="false" data-js="jmi_form" className="${pfx}"> Este es el componente de prueba </div>
          `);
        }
      } //Fin de la entrada
    },

});   Fin de domc.addType
} //Fin de la función de exportación  

Esta opción 2 da un error de compilación.

Respuestas (2)

megarg24 de septiembre de 2019

Esto ya funciona. El código original funciona.

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 →

Explorar categorías de plugins

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