Hola, si quiero agregar una lista ul al menú de hamburguesa con submenús que veo al hacer clic o al pasar el mouse, ¿debería hacerlo de esta manera o hay algo más eficiente?
Puedo agregar elementos individuales al menú de hamburguesa a través de un componente, pero necesito proporcionar elementos secundarios allí que se mostrarán al pasar el mouse.
¿Me puedes aconsejar? Gracias
<script type="text/discourse-plugin" version="0.1">
api.decorateWidget('menu-links:before', helper => {
return helper.h("li", [
helper.h("a.google", {
href:"https://google.com",
title: "Google",
}, helper.h('p', 'Google')),
]);
});
</script>
EDITAR: RESUELTO
Pero una cosa más, ¿cómo agrego target="_blank"?
2 Me gusta
keegan
(Keegan George)
29 Junio, 2022 16:32
2
Devolver un widget:
Lo que podrías hacer es devolver tu propio widget personalizado a api.decorateWidget, lo que te dará mucho más control en términos de aplicación de atributos, estado, acciones, etc.
Entonces podrías hacer:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
Luego, dentro de javascripts/discourse/widgets/custom-menu-links.js, crea un widget usando el helper createWidget:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
Echa un vistazo a este tema para aprender algunas de las características de los Widgets:
This is out of date. See Widgets, the Widget API and their roadmap?
The latest builds of Discourse are much faster at rendering topics thanks to our re-written post stream . I’ve written up our new plugin API but so far haven’t explained how the code all fits together. The purpose of this topic is to allow Discourse developers to understand how the new code works.
What’s a Virtual DOM?
A Virtual DOM is a data structure that enables browsers to re-render dynamic content very quickly. The techniq…
Utilicé widgets bastante en mi componente temático de encabezado desplegable, es posible que encuentres algo del código útil.
Añadir target=“_blank”
Lo añades al objeto de atributos:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);
2 Me gusta