Problema con la asignación automática de elementos de póster en vídeo
Hola @smik3 generalmente si tienes un problema tendrías que recrearlo dentro de una demo en directo. Por cierto, primero que nada, usa la API mejorada para definir componentes porque esto: '''js model: defaultType.model.extend({ Rasgos: [ { Nombre: 'Cartel', chngeProp: 1, }, ], }), Y entonces no deberías actualizar el...
Lee la respuesta completa abajo ↓Pregunta
¡Primero, disfrutar de verdad de todo lo que Grapes tiene para ofrecer una vez que hayas superado los primeros obstáculos!
Ahora mismo tengo un pequeño problema con los vídeos. Los paso al gestor de activos con una propiedad miniatura, que luego se aplica al rasgo del póster de vídeo cuando se actualiza el src. El único problema es que esto no parece funcionar hasta que el src se cambia un par de veces, y entonces solo se aplica a la vista y no al HTML exportado.
Aquí está mi código actual de mi plugin...
defaultType = comps.getType("video");
comps.addType("video", {
model: defaultType.model.extend({
Rasgos: [
{
Nombre: 'Cartel',
chngeProp: 1,
},
],
}),
view: defaultType.view.extend({
init() {
this.listenTo(this.model, 'active', this.onActive);
this.listenTo(this.model, "change:src", this.updatePoster);
},
eventos: {
dblclick: 'onActive',
},
onActive() {
editor. AssetManager.render(editor. AssetManager.getAll().filter(asset => asset.get('type') == 'video'));
editor.runCommand("open-assets", {
Objetivo: esto.modelo,
});
},
updatePoster() {
const src = this.model.get("src");
const srcOrigin = editor. AssetManager.getAll().filter(asset => asset.get("src") == src);
sea thumb = srcOrigin[0].get("thumb");
si (pulgar != "") {
sea thumbPath = src.substring(0, src.lastIndexOf("/"))+"/"+thumb;
this.model.getTrait('poster').set("value", thumbPath);
} else {
sea thumbPath = "";
this.model.getTrait('poster').set("value", thumbPath);
}
},
}),
});
y el bloque simplemente como
addName('video') && bm.add('video', {
etiqueta: "Vídeo",
categoría: "Extras",
Atributos: {clase:'fa fa-youtube-play'},
Contenido: {
Tipo: 'vídeo',
estilo: {
"display": "block",
"altura mínima": "200px",
"ancho máximo": "100%",
"altura": "auto",
"relleno": "10px",
},
activeOnRender: 1,
},
});
Supongo que me falta un poco de lógica en el modelo de componentes, pero no estoy seguro de cuál debería ser
Respuestas (2)
Hola @smik3 generalmente si tienes un problema tendrías que recrearlo dentro de una demo en directo. Por cierto, primero que nada, usa la API mejorada para definir componentes porque esto: '''js model: defaultType.model.extend({ Rasgos: [ { Nombre: 'Cartel', chngeProp: 1, }, ], }),
es definitivamente incorrecto (con esta API el método isComponent es obligatorio...), así que necesitarías algo así
'''js
modelo: {
Predeterminados: {
Deberías definir propiedades en los valores por defecto...
rasgos: [{
Nombre: 'Cartel',
chngeProp: 1,
Primero, es 'changeProp' y no 'chngeProp' y luego tú
ni siquiera lo necesito si será un atributo
}],
}
},
Y entonces no deberías actualizar el valor del rasgo, sino solo el modelo... '''js this.model.addAttributes({ poster: '...' });
¡Gracias por la respuesta, debería haberlo visto antes!
Ahora tengo el problema contrario, que aplica los cambios al modelo (y al código de exportación/final), pero si el bloque de vídeo se coloca dentro de otro bloque, la vista solo muestra un componente en blanco. Para personalizar lo que se muestra en el lienzo, ¿necesito actualizar el modelo o un aspecto diferente? Intentaré hacer un fragmento más adelante, estoy manejando los recursos de una forma extraña así que puede que tarde un rato.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #386
Amplía ejemplos/documentación de Pannel/Command abriendo una nueva vista
Hola Artur, ¡Primero que nada, Grapesjs es increíble! Ahora mismo estoy intentando entender cómo crear un panel con un botón que abra una n...
Issue #2805
[PREGUNTA] "Los cambios que hayas hecho pueden no guardarse." Se muestra una ventana emergente de alerta
Hola a todos Tengo un problema relacionado con Alert que aparecía cuando intentaba cerrar sesión en la página. En realidad no sé si es un b...
Issue #2590
[Sugerencia] Cuadrículas y escalas para el editor
Hola @artf, Trabajar con Grapesjs ha sido genial hasta ahora. Es fácil de usar una vez que lo entendemos. Solo tengo una sugerencia, ¿es po...
Issue #932
Configurar la imagen de fondo da lugar a reglas de estilo duplicado
Hola @artf, Tengo un pequeño problema extraño. Tengo un rasgo personalizado que tiene una implementación para configurar imágenes e imágene...
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 →Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.