Llamar a una función que está fuera del componente igual que se explica en el número #395
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
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)
Si quieres una función adjunta dentro de la cadena, tienes que pasar una cadena '''js drawGauge: 'function(id){ alerta(1); }`
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.
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.
Issue #460
Cuando la vista del componente modifica el HTML, los componentes de texto ya no son editables
Estoy intentando crear un componente personalizado que contenga algo de texto lorem ipsum en el contenido, para editarlo una vez que esté e...
Issue #395
Cómo llamar a una función que está fuera del componente en la función de script de un componente.
Por favor, ayudadme a resolver el problema que se muestra a continuación. Cómo llamar a una función que está fuera del componente en la fun...
Issue #673
¿Cómo renderizar el Gestor de bloques fuera del contenedor?
Soy nuevo en esta gran biblioteca y parece muy ordenada y limpia, PERO aquí está el problema que tengo. Estoy teniendo GJS renderizado en e...
Issue #1895
[PREGUNTA] Arrastra el componente sobre el lienzo con script, script añadido varias veces.
Hola, no estoy seguro de si esto es un error o no. Pero he notado un comportamiento extraño: cuando arrastro un bloque que tiene un compone...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
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 →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.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.