Issue #2893💬 RespondidoAbierto el 14 de julio de 2020por Hsin90321Reacciones 0

¿Puedo establecer el valor de bucle en el renderizado de componentes?

Respuesta rápidapor artf

Usa el 'questionCom' que vas a pasar al modelo (usa el modelo para actualizar la lógica relacionada con el modelo) y te sugeriría usar la API de la documentación de Components (por ejemplo, 'textType.view.extend' es la antigua)

Lee la respuesta completa abajo ↓

Pregunta

Hola, soy principiante en uvas. Quiero hacer un número de pregunta por el bucle for cuando dejé de lado componentes, ↓Quiero la final como esta imagen. El div puede mostrar el número de bucle. ! 01

↓Código de mi componente

 HTML por defecto
    const questionCom = 
   '<div class="gjs-row">
        <div class="gjs-cell">{{i}}</div> Variable //number
        <div class="gjs-cell"></div>
    ';</div>
    const dc = editor. DomComponents;
    const textType = dc.getType('text');
    editor. BlockManager.add('m2', {
            etiqueta: "número de pregunta",
            ACTIVAR: Cierto,
            Contenido: {
                Tipo:'M2',
                questionCom ,
         
},  
        }),
        dc.addType('m2', {
            model: textType.model.extend({
                //...     
                }
            }),
            view:textType.view.extend({
                onActive(){
                    //...
                },
                render(val) {
                    var a=""
                    this.model.set('components', 
                          función a1(){ //on onActive I llamo función a1
                               for(var i=0; i<3; i++){ 
                                    a+='<div class="gjs-row"><div class="gjs-cell">'+
                                           val+
                                           '</div><div class="gjs-cell"></div></div>'
                                }   
                                devolver a         
                            }
                       }
                      devuelvo esto;
                },
            })
        });

En renderizado, dividí mi html predeterminado QuestionCom de {{i}} en frente y reverso. Luego, ponlos en renderizado. {{i}} puede ser perfecto para mostrar 1 2 3 en componente.

Pero el método dividido no es bueno. HTML no es fácil de leer y no puedo configurar HTML complejo si quiero, por ejemplo↓

<div class="gjs-row"> //one div
        <div class="gjs-cell"> //dos div
               <div class="gjs-row"> //tres div
                        <div class="gjs-cell">{{i}}</div> //cuatro div
                        <div class="gjs-cell"></div>
                 </div> 
         </div> 
        <div class="gjs-cell"></div>
    </div>

¿Existe algún método mejor que pueda resolver mi pregunta? ¡Gracias!

Respuestas (1)

artf29 de julio de 2020

Usa el 'questionCom' que vas a pasar al modelo (usa el modelo para actualizar la lógica relacionada con el modelo) y te sugeriría usar la API de la documentación de Components (por ejemplo, 'textType.view.extend' es la antigua)

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.