我有几行标记,我想避免保留在外部部分文件中,但它应该基于变量值(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'
这可能吗?
最佳答案
我相信您想要类似的东西:
{{#* 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);
因此,在搜索父级时,该点用于告诉"template",inputData 应该是父级,而我们正在寻找“状态”作为子级。我相信这就是它的用处。我实际上找不到任何有关其使用的文档,但所有查找似乎都采用查找父子
格式,所以我认为这就是推理。
关于javascript - Handlebars 动态内联部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142221/