javascript - Handlebars 动态内联部分

标签 javascript templates handlebars.js

我有几行标记,我想避免保留在外部部分文件中,但它应该基于变量值(IN_PROCESSDONE。我可以制作内联部分并根据静态名称渲染它们:

{{#* 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));

JSFiddle Example

点代表已传递到模板函数中的数据对象。模板函数无法知道对象的名称是什么:

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/

相关文章:

javascript - 尝试从十六进制或 RGB 颜色计算 Pixastic 颜色调整值

Javascript json 到嵌套 json

Angular - 有没有办法在 ng-template 内投影内容?

handlebars.js - else if 的 Handlebars js 自定义助手

javascript - 清除 Angular6 中表单的提交状态

php - 函数适用于 jquery 1.4.2,但不适用于 jquery 1.9.1

c++ - 创建模板库文件

c++ - SFINAE C++ 方法检查

javascript - 如何在 Handlebars 中显示 json 数组中的数据?

javascript - 关于 Backbone.js 与 Handlebars.js 的问题