我想避免保留在外部部分文件中的几行标记,但是应该基于变量值IN_PROCESS
或DONE
来呈现它。我可以制作内联局部函数并根据静态名称进行渲染:
{{#* inline "IN_PROCESS"}}IN_PROCESS{{/inline}}
{{#* inline "DONE"}}DONE{{/inline}}
{{> IN_PROCESS }}
{{> DONE }}
但是,我无法弄清楚如何将其与我所了解的here的()
动态值语法结合起来。
类似,
{{> (data.status) }}
└─────────┘ data.status would be either 'IN_PROCESS' or 'DONE'
答案 0 :(得分:1)
我相信您想要与此类似的东西:
{{#* inline "IN_PROCESS"}}IN_PROCESS{{/inline}}
{{#* inline "DONE"}}DONE{{/inline}}
{{> (lookup . 'status')}}
{{> (lookup . 'status')}}
将遍历JSON data
对象的status
属性。
也就是说,如果您要通过以下方式传递数据:
var template = Handlebars.compile(**your source**);
$('body').append(template(data));
点表示已传递到模板函数中的数据对象。模板函数无法知道对象的名称:
template(inputData){
// This function wouldn't know that inputData.status was originally data.status
}
var data = {status: "DONE"};
template(data);
因此,当搜索父项时,该点用于告诉“模板” inputData应该是父项,而我们正在寻找“ status”作为子项。我相信这是它的用途。我实际上找不到有关其用法的任何文档,但是所有查找的格式似乎都是lookup parent child
,所以我认为这就是原因。