您好,如果我想在汉堡菜单中添加一个无序列表,其中包含我通过单击或鼠标悬停看到的子菜单,我应该这样做还是有更有效的方法?
我可以将单个项目添加到汉堡菜单中,但需要为它们提供子项目,这些子项目将在悬停时显示。
您能给我一些建议吗?谢谢
<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>
编辑:已解决
但还有一件事,如何添加 target blank?
2 个赞
keegan
(Keegan George)
2
返回一个小部件:
您可以执行的操作是向 api.decorateWidget 返回您自己的自定义小部件,这将为您在应用属性、状态、操作等方面提供更大的控制权。
所以您可以这样做:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
然后,在 javascripts/discourse/widgets/custom-menu-links.js 中,使用 createWidget 助手创建一个小部件:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
请查看此主题以了解小部件的一些功能:
我在我的下拉标题主题组件中大量使用了小部件,您可能会发现一些代码很有帮助。
添加 target=“_blank”
您将其添加到 attributes 对象:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);
2 个赞