javascript - Handlebars 自定义 Helper 参数如何工作

标签 javascript templates handlebars.js

我试图理解 Handlebars helpers 的论点如何来吧。

我了解所调用的实际函数,但不了解如何为其提供所需的参数。

示例 1 - 内置 Helper:

Handlebars.registerHelper("if", function(conditional, options) {
  if (conditional) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
});

通过调用

{{#if blockExists}}
   //blalba
{{/if}}

什么是条件选项以及它们如何实际解析为函数?

示例 2 - 自定义助手:

Handlebars.registerHelper('concat', (str1, str2, separator) => {
  return `${str1 || ''}${separator || ''}${str2 || ''}`;
});

这个 Helper 是怎么称呼的?参数是如何解析的?由于返回值不是 truefalse,如何使用它?

感谢任何帮助。

最佳答案

文档:Helpers with Multiple Parameters

您的 hbs 文件:

{{concat "str1" "str2" "separetor"}}

第一个参数是助手的名称,其他参数是参数

你的 helper :

Handlebars.registerHelper('concat', (str1, str2, separator) => {
 return `${str1 || ''}${separator || ''}${str2 || ''}`;
});

{{expression}} 返回的值可以是字符串,您应该使用 return new Handlebars.SafeString(result); 传递它

关于javascript - Handlebars 自定义 Helper 参数如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59946774/

相关文章:

javascript - JS模板语言,允许我确定路径

arrays - 在handlebars.js 上,如何在父级别上使用#first?

javascript - 我怎样才能一次打印所有内容

JavaScript DOM 引用不支持

javascript - Photoshop JS 指定字体

javascript - 结合 jQuery Globalize 和 underscore.js 模板?

c++ - std::tuple 到成员函数

c++ - 仅为派生类启用模板化基类

javascript - Vue.js 中 Express-Handlebars 部分的等价物是什么?

java - 配置 Java HBS 在何处查找部分模板