Issue #445💬 RespondidoAbierto el 24 de octubre de 2017por suchithmahadiReacciones 0

Llamar a una función que está fuera del componente igual que se explica en el número #395

Respuesta rápidapor artf

Si quieres una función adjunta dentro de la cadena, tienes que pasar una cadena '''js drawGauge: 'function(id){ alerta(1); } ``

Lee la respuesta completa abajo ↓

Pregunta

Fragmento de códigoTEXT
Estoy llamando a una función que está fuera del componente igual que se explica en el número #395
pero está devolviendo una cadena en lugar de una función
Quiero llamar a la función defaults.drawGauge en script y pasar el id que se crea dinámicamente

Estoy atascado, por favor ayudadme
grapesjs.plugins.add('liquid-gauge-plugin', function(editor, options){

Sea defaults = {
        Esta función debe llamarse en un script de componentes
        drawGauge:función(id){
            alerta ("draw" + id);
        }
    }

para (dejemos nombre en los valores predeterminados) {
        si (!( nombre en opciones))
            opciones[nombre] = predeterminados[nombre];
    }
    var domComponents = editor. Jefe de bloque;
    domComponents.add('h1-block', {
        id: 'líquido',
        etiqueta: 'Calibre de líquido',
        Categoría: 'Plugin',
        atributos: {
            Clase: 'fa fa-square-o'
        },
        estilo: {
            Relleno: '100px'
        },
        Contenido: {
            Tipo: 'Líquido'
        }
    });

Obtén el módulo DomComponents
    VAR Comps = Editor. DomComponents;

Obtén el modelo y la vista desde el tipo de Componente por defecto
    var defaultType = comps.getType('default');
    var defaultModel = defaultType.model;
    var defaultView = defaultType.view;
    comps.addType('liquid', {
        model: defaultModel.extend({
                defaults: Object.assign({}, defaultModel.prototype.defaults, {
                    removible: cierto,
                    d: options.drawGauge,
                    Arrastrable: Cierto,
                    Editable: Cierto,
                    Copiable: Cierto,
                    Badgable: Cierto,
                    Resaltable: Cierto,
                    redimensionable: cierto,
                    Droppable: Cierto,
                    Contenido: '<SVG style="width:90%"; >
                    ',</svg>
                    script: function() {
                        console.log(this.id);
                        Quiero llamar a defaults.drawGauge función aquí y pasar this.id
                        var di = '{[ d ]}';
                        console.log(tipo(di));

},

Rasgos: [

{
                            Tipo: 'color',
                            etiqueta: 'Círculo',
                            Nombre: 'Circles',
                            cambioProp: 1,
                            y actualizar una vez que cambien los rasgos
                            opciones: options.drawGauge.update()
                        },
                        {
                            Tipo: 'color',
                            etiqueta: 'Wave',
                            Nombre: 'Wave',
                            cambioprop: 1
                        },
                        {
                            Tipo: 'color',
                            etiqueta: 'waveText',
                            nombre: 'waveText',
                            cambioprop: 1
                        },
                        {
                            Tipo: 'color',
                            etiqueta: 'Color del texto',
                            nombre: 'textColor',
                            cambioprop: 1
                        },
                    ],
                })
            },
            {
                isComponent: function(el) {
                    if (el.tagName == 'LÍQUIDO') {
                        return {
                            Tipo: 'Líquido'
                        };
                    }
                },
            }),

Definir la vista
        view: defaultType.view.extend({

render: function() {
                defaultType.view.prototype.render.apply(esto, argumentos);
                devuelvo esto;
            },
        }),
    });
})

Respuestas (3)

artf25 de octubre de 2017

Si quieres una función adjunta dentro de la cadena, tienes que pasar una cadena '''js drawGauge: 'function(id){ alerta(1); }`

suchithmahadi25 de octubre de 2017

Perdona @artf no entendí exactamente lo que estás diciendo, ¿puedes explicarlo con más detalle? Aquí quiero llamar a la función ("drawGauge", que está en tercera línea) en la función script de domComponents. Por favor, explícalos relacionados con el problema mencionado anteriormente. Gracias por tu ayuda. Por favor, ayudadme con esto, ya que es muy importante para mí y llevo una semana atascada en esto.

artf25 de octubre de 2017

Dentro de tu propiedad 'script', '{[ d ]}' se reemplazará por una propiedad 'd' del componente y no puede ser una función, así que si tu resultado final debería ser así: '''js var di = function() {...};

Tienes que poner una cadena para 'D'

'''js
...
removible: cierto,
d: "function() {...}",// <- cadena, NO función
Arrastrable: Cierto,
Editable: Cierto,
...

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.