遵循此处的文档 Developing Discourse Themes & Theme Components
使用日志的示例工作正常,但当我将小部件更新为
{{mount-widget widget=\"hamburger-categories\"}}
时,什么也没有显示……我已按列表 https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/widgets. 检查过,有些小部件显示出来,有些则没有?
最终我希望在自定义标题中使用分类列表作为按钮,如下所示……
我将其设置为“Header Dropdown”,然后更改为“Legacy”,但问题依旧。
1 个赞
汉堡菜单显示了,但我只需要类别
{{mount-widget widget="hamburger-menu"}}
抱歉,我被小部件的名称弄糊涂了。您正在使用哪个插件出口?
与文档中的相同
<script type="text/x-handlebars" data-template-name="/connectors/below-footer/fancy-footer">
<div class="footer">
<div class="wrap">
<p>在挂载小部件之前</p>
{{mount-widget widget="home-logo"}}
{{mount-widget widget="hamburger-categories"}}
<p>在挂载小部件之后</p>
</div>
</div>
</script>
如果您查看指南,您会发现插件插槽接受一个名为 showFooter 的属性。该属性很可能为 false。这意味着页脚和附加的小部件都不会显示。
无论如何,为什么页眉构件会有页脚插槽?
依我看,使用插件插槽主题组件来选择一个更好的位置。
它显示…它显示 widget=“home-logo”
它还显示 widget=“hamburger-menu”
但它不显示 widget=“hamburger-categories”
只是测试一下,现在在哪里并不重要
1 个赞
但是,当我在页脚出口中使用 widget=“hamburger-menu” 时,它会显示类别
我尝试了页面周围的其他出口,但问题仍然存在
如果一开始就贴出那个错误信息,就能节省很多时间。
请始终查看控制台。
在以与汉堡菜单相同的方式检索到类别列表后,您可能需要将其与 JavaScript 关联起来。
1 个赞
是的,绝对是,如果文档没有说“现在,挂载一个小部件非常简单,您只需要知道小部件的名称。就是这样”,那么需要更多的时间。
1 个赞
您知道在哪里可以找到最新的指南吗?我在这里到处找答案,但找到的都是 4 年前的帖子。是否有实际的指南文档?
是的,我明白这可能会引起误解……技术上来说,它确实挂载了小部件,但这并不意味着小部件所需的数据会自动可用。
你可以尝试通过这种方式将类别传递给小部件:
{{mount-widget widget="hamburger-categories" args=(hash categories=this.site.categories)}}
1 个赞
太好了,谢谢……是的,这很有道理,现在显示出来了
既然我们在这里讨论控制台日志
在遵循文档 Developing Discourse Themes & Theme Components 时
当我尝试
<script type="text/discourse-plugin" version="0.8">
console.log(Discourse)
</script>
我不确定我是否得到了一个“全局对象到控制台”,我得到的是一个类
如果我尝试类似以下的操作
<script type="text/discourse-plugin" version="0.8">
const settings = Discourse.SiteSettings;
console.log(settings)
</script>
我得到这个错误
THEME 6 'BCN Theme - watched locally'] Deprecation notice: use injected siteSettings instead of Discourse.SiteSettings
1 个赞