javascript - 如何在客户端的部分内部引用 Handlebars 部分?
问题描述
背景
我有两个部分,“发布”和“主题”。帖子可以有很多主题,我正在尝试使用把手创建新帖子。帖子使用 each 循环来呈现每个主题。
{{#each subjects}}
{{> subject}}
{{/each}}
主题看起来像这样:
<li class="post-subject">{{postSubject}}</li>
具体问题
当我传递这样的对象时,我收到错误“找不到部分主题”:
// Subjects come in this form
let subs = [{"postSubject": "Avengers: Endgame"},
{"postSubject": "Avengers: Infinity War"}];
let postObj = {
postContent: "some_string",
timestamp: "some_string",
subjects: subs
};
到这个功能:
let newPost = Handlebars.templates.post(postObj);
老实说,我不确定为什么它找不到部分主题,因为我可以将完全相同的对象数组从我的服务器传递到客户端,并且它可以很好地呈现它们。当然,为主题传递 [] 就可以了。我所有的部分也都存储在同一个文件夹中。
我假设模板功能可以让客户找出“发布”部分的存储位置,而不是其他人可能在哪里,这就是为什么它无法找到部分的主题,但老实说我不知道。
如果我在某些地方含糊不清/没有提供足够的信息,请随时提出任何问题。先感谢您!
解决方案
在摆弄了一会儿之后,我终于发现我需要使用以下方法注册主题部分:
Handlebars.registerPartial('subject', '<li class="post-subject">{{postSubject}}</li>');
我希望我可以在第二个元素中引用实际的部分,但我不确定如何。这虽然有效,但这就是我所需要的。
推荐阅读
- json - 提问如何在Golang中将mongodb的命令转换为Bson
- android - 将 View Rect 坐标转换为位图区域
- spring-boot - Spring Boot:如何使用多个 RestTemplates?有条件地在有和没有 SSL 证书验证的情况下拨打电话
- javascript - Javascript 过滤器不适用于动态插入的 HTML
- android - 当连接到没有互联网的 SSID 时,android Q/10 无法解决主机“URL”问题
- azure - SSH 到 Azure Kubernetes 的 VM 时出错
- javascript - CSS 网格布局动态调整大小
- reactjs - 如何将多个输入的内容写入一个数组?
- javascript - 从 Javascript 代码单击 Windows Dekstop
- xamarin - 通过 FCM 在 xamarin.forms 中收到通知,但图像未显示在系统托盘中