Issue #846💬 RespondidoAbierto el 7 de febrero de 2018por davidherlopgtReacciones 0

Error cuando intenté añadir filas a una tabla

Respuesta rápidapor davidherlopgt

No recuerdo qué versión estoy usando grapesjs - 0.13.5 <link rel="stylesheet" href="Config/grapesjs-dev/dist/css/grapes.min.css"> <link rel="stylesheet" href="Config/grapesjs-preset-webpage-master/dist/grapesjs-preset-webpage.min.css"/> <script src="Config/grapesjs-dev/dist/grapes.min.js"></script> <script src="Config...

Lee la respuesta completa abajo ↓

Pregunta

Hola a todos Estoy empezando a usar Grapesjs y tengo un problema, estoy intentando añadir 3 comandos nuevos para crear tablas, añadir filas y celdas, la tabla funciona bien pero cuando añado una fila a la tabla me aparece este error: "Posición objetivo inválida: Colección de destino no encontrada, Objetivo no se puede soltar, acepta [indefinido], Componente no arrastrable, aceptable por [indefinido]", ¿alguien podría ayudarme? Este es mi código: Agradezco la ayuda

Fragmento de códigoTEXT
'<script type="text/javascript">
            var editor = grapesjs.init({
            Altura: '100%',
                    Offsets: 1,
                    avisoOnUnload: 0,
                    storageManager: {autoload: 0},
                    Contenedor: '#gjs',
                    fromElement: cierto,
                    Plugins: ['GJS-preset-webpage'],
                    pluginsOpts: {
                    'gjs-preset-webpage': {}
                    }
            });
            
var bm = editor. Jefe de bloque;
            VAR Comps = Editor. DomComponents;
            var defaultType = comps.getType('default');
            var defaultModel = defaultType.model;
            var defaultView = defaultType.view;
            bm.add('table', {
            etiqueta: 'Mesa',
                    contenido: '<table><thead><th></th></thead><tbody><tr><td>Test</td></tr ></tbody></table>',
                    atributos: {
                    'tipo de datos': 'tabla',
                    },
            });
            bm.add('tr', {
            etiqueta: 'Row',
                    contenido: '<tr><td>Prueba</td></tr>',
                    atributos: {
                    'tipo de datos': 'tr',
                    },
            });
            bm.add('td', {
            etiqueta: 'Cell',
                    contenido: '<td>Prueba</td>',
                    atributos: {
                    'tipo de datos': 'td',
                    },
            });
            
comps.addType('table', {
              model: defaultModel.extend({
                defaults: Object.assign({}, defaultModel.prototype.defaults, {
                'nombre personalizado': 'Mesa',
                Arrastrable: Cierto,
                Droppable: Cierto,
                Aceptado: Cierto,
                Resaltable: Cierto,
                estilizado: [
                     'altura', 'estilo de fuente', 'tamaño de fuente', 'peso de fuente', 'familia de fuente', 'color',
                     'ancho'
                ],
                estilo: {
                     'ancho': '100%',
                     'tamaño de fuente': '14px'
                 },
                }),
              },
              {
                isComponent: function(el) {
                  if(el.tagName === 'TABLA'){
                    return {type: 'table'};
                  }
                },
              }),
            vista: defaultType.view,
          });
          
comps.addType('tr', {
              model: defaultModel.extend({
                defaults: Object.assign({}, defaultModel.prototype.defaults, {
                  'nombre personalizado': 'Row',
                    Arrastrable: Cierto,
                    Droppable: Cierto,
                    Resaltable: Cierto,
                    Aceptado: Cierto,
                }),
              },
              {
                isComponent: function(el) {
                  if(el.tagName === 'TR'){
                    return {type: 'tr'};
                  }
                },
              }),
            vista: defaultType.view,
          });
          
comps.addType('td', {
              model: defaultModel.extend({
                defaults: Object.assign({}, defaultModel.prototype.defaults, {
                  'nombre personalizado': 'Td',
                    Arrastrable: Cierto,
                    Droppable: Cierto,
                    Resaltable: Cierto,
                    Aceptado: Cierto,                               
                }),
              },
              {
                isComponent: function(el) {
                  if(el.tagName == 'TD'){
                    return {type: 'td'};
                  }
                },
              }),
            vista: defaultType.view,
          });          
        '</script>

Respuestas (3)

davidherlopgt7 de febrero de 2018

No recuerdo qué versión estoy usando grapesjs - 0.13.5 <link rel="stylesheet" href="Config/grapesjs-dev/dist/css/grapes.min.css"> <link rel="stylesheet" href="Config/grapesjs-preset-webpage-master/dist/grapesjs-preset-webpage.min.css"/> <script src="Config/grapesjs-dev/dist/grapes.min.js"></script> <script src="Config/grapesjs-preset-webpage-master/dist/grapesjs-preset-webpage.min.js"></script>

artf8 de febrero de 2018

@davidherlopgt ¿Has probado a usar componentes de tabla integrados en lugar de ampliarlos? Por cierto, por favor, crea una demo en directo

davidherlopgt8 de febrero de 2018

Hola artf, gracias por tu respuesta, intenté usar el componente table y puedo añadir la tabla con una fila y una celda en el encabezado y el cuerpo, quizá la desventaja sea que si cambio el color de la fila al encabezado, también cambia el cuerpo, así que tengo que eliminar la clase de la fila del cuerpo para que no se vea afectada Añado la demo en directo como pides grapesjslivedemo.zip

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.