在车把中,如何转义字段名称中的特殊字符?

问题描述 投票:0回答:3

例如我有一个这样的对象:

{ '#SKU_NBR': '123' }

我想打印出该值,但简单的语法不起作用:

<div>{{#SKU_NBR}}<div>

如何转义字段名称,以便可以在车把的模板表达式中使用它?

javascript handlebars.js
3个回答
3
投票

要详细说明bigless的答案,您可以使用以下任何一个:

  • {{ "#SKU_NBR" }}
  • {{ '#SKU_NBR' }}
  • {{ [#SKU_NBR] }}

这些解析转义字符中命名的变量(而不是仅包含字符串

#SKU_NBR
)。

我遇到了类似的问题,因为我有名为

this
with
的变量。我发现
{{[this]}}
按预期工作,但
{{[with]}}
没有。我可以通过使用
{{this.with}}

来解决这个问题

0
投票

解决此问题的一种方法是使用辅助函数。我制作了一个名为

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")}}

© www.soinside.com 2019 - 2024. All rights reserved.