[英]In handlebars, how can I escape special characters in field names?
例如,我有一個這樣的對象:
{ '#SKU_NBR': '123' }
我想打印出該值,但是簡單的語法不起作用:
<div>{{#SKU_NBR}}<div>
如何轉義字段的名稱,以便可以在車把的模板表達式中使用它?
解決此問題的一種方法是使用助手功能。 我做了一個叫做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")}}
要詳細說明bigless的答案,可以使用以下任一方法:
{{ "#SKU_NBR" }}
{{ '#SKU_NBR' }}
{{ [#SKU_NBR] }}
這些解析在轉義字符中命名的變量(而不是僅包含字符串#SKU_NBR
)。
我有一個類似的問題,因為我有名為this
和with
變量。 我發現{{[this]}}
工作,但{{[with]}}
卻沒有工作。 我可以使用{{this.with}}
解決此問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.