添加一个定制的原始模板

嘿,我正在尝试添加自己的 Raw 模板……而不仅仅是覆盖现有的模板。

原因:我想摆脱在使用嵌套组件时出现的那些恼人的 Ember 标签。

……起初我本以为这很简单,只需将模板添加到 templatestemplates/list 目录中即可,于是我照做了,结果却静默失败(无法找到我的模板)。

也许我可以确认这是不被支持的?

后来我发现了这个:

以及这个:

于是我尝试了以下代码:

import { addRawTemplate } from "discourse-common/lib/raw-templates";
import { compile } from "handlebars";

<!--一些初始化代码-->

addRawTemplate('search-result-entry', compile(`<span class='result-lala'>hello</span>`));

结果却得到了这个错误:

TypeError: Handlebars.compile is undefined

谢谢!

如果我哪里做错了,还请见谅……

(顺便说一句,这个功能将会非常有用,所以感谢你们实现了它!)

你应该能够直接将原始模板添加到模板文件夹中。我们在 discourse-docs 中就是这样做的。它们现在使用 .hbr 文件扩展名,所以问题可能出在这里。

你是指 Ember 组件默认添加的包装 <div> 吗?可以通过将 tagName 设置为空字符串来禁用它:

使用 Ember 组件比直接使用模板要容易得多,因此如果你能选择,我绝对建议继续使用 Ember。

啊,我把 hbr 模板放到了 templates/components 里!(显然,这样写出来就知道是错的)

感谢你的示例,Justin!我把它们移到了 templates 文件夹,问题解决了,哎呀!

现在可以正常工作了!

@david 这个提示非常有用,谢谢!我也会利用它!这样我就能保留操作,完美。

看来我把事情想得太复杂了,多谢!