如何在客户端的部分中引用把手部分?

时间:2019-05-20 04:25:14

标签: javascript handlebars.js partials

背景

我有两个部分,“ Post”和“ Subject”。帖子可以包含许多主题,我正在尝试使用车把创建新帖子。帖子使用each循环呈现每个主题。

{{#each subjects}}
    {{> subject}}
{{/each}}

主题如下:

<li class="post-subject">{{postSubject}}</li>

特定问题

通过这样的对象时,我得到error找不到部分主题”:

// 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);

老实说,我不确定为什么找不到部分主题,因为我可以将完全相同的对象数组从服务器传递给客户端,并且使它们很好。当然,通过主题的[]效果很好。我所有的局部文件也都存储在同一文件夹中。

我认为模板功能可以让客户找出“ Post”部分的存储位置,而不是其他人可能存储的位置,这就是为什么它找不到主题的部分原因,但是老实说,我不知道。

如果我在某些地方含糊不清/没有提供足够的信息,请随时提问。预先谢谢你!

1 个答案:

答案 0 :(得分:0)

经过一会儿的摆弄之后,我终于发现我需要使用以下方式注册部分主题:

Handlebars.registerPartial('subject', '<li class="post-subject">{{postSubject}}</li>');

我希望可以在第二个元素中引用实际的部分,但是我不确定如何引用。虽然可以,但这就是我所需要的。