在 partial 标签中使用 handlebars 助手
Use a handlebars helper within a partial tag
我有一个 handlebars 助手,它允许我将字符串翻译成它们支持的语言环境:
{{getString "my-translatable-string"}}
function getString(id, args) {
const supportedLocales = getSupportedLocales(args);
return LocaleUtils.fluentFormat(supportedLocales, id, args.hash);
}
我想将该值传递给车把部分
{{> mypartial alt="{{getString "my-translatable-string"}}"}}
但这会引发错误。我如何pass/interpolate将“getString”的结果放入部分标签的alt参数中?
我看到两个问题:
首先,通过将 alt
的值括在引号中,看起来我们正试图将文字字符串作为 alt
参数的值传递给我们的部分。但是,我们想使用 Handlebars 表达式,因此应删除这些引号。
其次,Handlebars 不允许我们嵌套胡须。相反,Handlebars 将允许我们通过将子表达式括在括号中来使用 subexpressions。
生成的模板变为:
{{> mypartial alt=(getString "my-translatable-string")}}
我创建了一个fiddle供您参考。
我有一个 handlebars 助手,它允许我将字符串翻译成它们支持的语言环境:
{{getString "my-translatable-string"}}
function getString(id, args) {
const supportedLocales = getSupportedLocales(args);
return LocaleUtils.fluentFormat(supportedLocales, id, args.hash);
}
我想将该值传递给车把部分
{{> mypartial alt="{{getString "my-translatable-string"}}"}}
但这会引发错误。我如何pass/interpolate将“getString”的结果放入部分标签的alt参数中?
我看到两个问题:
首先,通过将 alt
的值括在引号中,看起来我们正试图将文字字符串作为 alt
参数的值传递给我们的部分。但是,我们想使用 Handlebars 表达式,因此应删除这些引号。
其次,Handlebars 不允许我们嵌套胡须。相反,Handlebars 将允许我们通过将子表达式括在括号中来使用 subexpressions。
生成的模板变为:
{{> mypartial alt=(getString "my-translatable-string")}}
我创建了一个fiddle供您参考。