oca
1
大家好,
假设我想覆盖来自某个插件(比如非常出色的 Events 插件)的 hbs 模板。
我尝试了以下脚本:
<script type="text/x-handlebars" data-template-name="components/events-calendar-day">
***一些内容,以便显示分类图标而不是圆形***
</script>
<script type="text/x-handlebars" data-template-name="/plugins/discourse-events/assets/javascripts/discourse/templates/components/events-calendar-day">
***一些内容,以便显示分类图标而不是圆形***
</script>
但它们并未执行。我猜模板在该位置找不到,那么我该如何访问它? 插件的模板是否位于其各自的目录中?如果是,具体在哪里?主题指南 中并未对此进行说明。
提前感谢!
tshenry
(Taylor)
2
我会确保在主要指南中补充相关说明,但在此之前,请先看看我的回复:
oca
3
非常感谢,但这并没有解决我的用例:
据我理解,「root」文件夹是 (discourse/app/assets/javascripts/discourse/app/templates/),所以我可以通过该路径访问子文件夹中的组件。
但我想要访问的模板位于:
discourse/plugins/discourse-events/assets/javascripts/discourse/templates/components/
这并不是第一个文件夹的子文件夹。有没有办法在不 fork 插件的情况下修改这些内容?
或者您的意思是应该使用
/javascripts/discourse/templates/components/template-name?
(我试过了,似乎不起作用,但我可能犯了其他错误。)
或者我是否误解了什么?
提前感谢!
tshenry
(Taylor)
4
也许这里对术语存在一些混淆。无论如何,只需使用:
<script type="text/x-handlebars" data-template-name="javascripts/components/template-name">
</script>
您无需在 data-template-name 中包含其他内容。它将被正确映射。