嘿,我正在尝试添加自己的 Raw 模板……而不仅仅是覆盖现有的模板。
原因:我想摆脱在使用嵌套组件时出现的那些恼人的 Ember 标签。
……起初我本以为这很简单,只需将模板添加到 templates 或 templates/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
谢谢!
如果我哪里做错了,还请见谅……
(顺便说一句,这个功能将会非常有用,所以感谢你们实现了它!)
justin
(Justin DiRose)
2
你应该能够直接将原始模板添加到模板文件夹中。我们在 discourse-docs 中就是这样做的。它们现在使用 .hbr 文件扩展名,所以问题可能出在这里。
david
(David Taylor)
3
你是指 Ember 组件默认添加的包装 <div> 吗?可以通过将 tagName 设置为空字符串来禁用它:
使用 Ember 组件比直接使用模板要容易得多,因此如果你能选择,我绝对建议继续使用 Ember。
啊,我把 hbr 模板放到了 templates/components 里!(显然,这样写出来就知道是错的)
感谢你的示例,Justin!我把它们移到了 templates 文件夹,问题解决了,哎呀!
现在可以正常工作了!
@david 这个提示非常有用,谢谢!我也会利用它!这样我就能保留操作,完美。
看来我把事情想得太复杂了,多谢!