例如我有一个这样的对象:
{ '#SKU_NBR': '123' }
我想打印出该值,但简单的语法不起作用:
<div>{{#SKU_NBR}}<div>
如何转义字段名称,以便可以在车把的模板表达式中使用它?
要详细说明bigless的答案,您可以使用以下任何一个:
{{ "#SKU_NBR" }}
{{ '#SKU_NBR' }}
{{ [#SKU_NBR] }}
这些解析转义字符中命名的变量(而不是仅包含字符串
#SKU_NBR
)。
我遇到了类似的问题,因为我有名为
this
和 with
的变量。我发现 {{[this]}}
按预期工作,但 {{[with]}}
没有。我可以通过使用 {{this.with}}
来解决这个问题
解决此问题的一种方法是使用辅助函数。我制作了一个名为
get
的项目,它仅获取基于字符串的字段。
import Handlebars from 'handlebars'
import get from 'lodash/get'
Handlebars.registerHelper('get', function (path, opts) {
return get(opts, `data.root.${path}`)
})
const template = Handlebars.compile('{{get "#upc"}}');
const result = template({ '#upc': 'abc123' })
console.log(result) // abc123
您也可以在子表达式中使用它,如下所示:
{{tolowercase (get "#upc")}}
您可以使用
{{[@special-chars]}}
。
示例:
{{[#sku_no]}}