【问题标题】:How can i add expressions to handlebars partials parameters如何将表达式添加到车把部分参数
【发布时间】:2017-02-04 03:59:17
【问题描述】:

如何将表达式添加到部分参数?我想做这样的事情:

{{> myPartial greeting=(i18n.greeting + "my text") }}

【问题讨论】:

  • 你需要一个助手来进行字符串连接。
  • 我正在尝试找出如何创建助手。我创建了辅助函数 i18n。它适用于 {{i18n 'greeting'}} 但它不适用于部分:{{> myPartial greeting="(i18n 'greeting')" }}

标签: javascript handlebars.js expression partials


【解决方案1】:

Handlebars 文档有一个section on subexpressions。它告诉我们将内部助手的结果作为参数传递给外部助手的方法如下:

{{> myPartial greeting=(i18n 'greeting') }}

但是,从您的问题来看,您可能正在尝试将一些字符串值连接到一个单独的 greeting 参数中。如果是这种情况,您将需要创建(或导入)一个助手,它将为您连接字符串,然后将此助手应用为另一个子表达式。结果如下所示:

{{> myPartial greeting=(concat (i18n greeting) 'my text') }}

所需的助手可以按如下方式完成:

Handlebars.registerHelper('concat', function () {
    return Array.prototype.slice.call(arguments, 0, -1).join('');
});

【讨论】:

  • 谢谢!我的 subespression 有错误,我这样写 {{> myPartial greeting=("i18n greeting") }} 并认为子表达式在参数中不起作用。
【解决方案2】:

这取决于您如何使用 nodeJS 配置服务器选项 我使用 '__' 表达式配置了 res.locals (Version Express Over 4.0) 中的函数,所以在示例中看起来像这样

{{> myPartial greeting=(i18n 'greeting')}}

您在语言环境中的 JSON 文件应该有这个密钥,它会很神奇......

顺便说一句,将密钥与任何字符串连接应该是这样的

{{> myPartial greeting=(i18n 'Hello %s', 'Marcus')}}

我希望你觉得这很有用..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-17
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多