簡體   English   中英

使用 Mustache.js 轉義變量名

[英]Escape variable name with Mustache.js

我有一個 csv 文件,我將它解析為 JSON,然后發送到 Mustache.js。 問題是一些變量名的格式不正確,所以我最終得到的對象可能如下所示:

{
    'Num.': '1234',
    'Pass-through': 'yes'
}

那么我將如何在 Mustache 模板中使用這些變量? 我嘗試了幾種不同的方法。

<td>{{ Num. }}</td>
<td>{{ 'Num.' }}</td>
<td>{{ ['Num.'] }}</td>

但是它們都不起作用(如果它們起作用了,我會更驚訝),並且在文檔中找不到有關如何轉義變量名稱的任何內容。

手冊

概述: 插值標簽用於將動態內容集成到模板中。

標簽的內容必須是非空格字符序列,不包含當前的結束定界符。

該標簽的內容為替換該標簽的數據命名。 單個句點( . )表示應使用當前位於上下文堆棧頂部的項目; 否則,名稱解析如下:

  1. 按句點分割名稱; 第一部分是要解析的名稱,任何其余部分都應保留。
  2. 從上到下遍歷上下文堆棧,找到第一個上下文,即a)包含名稱作為鍵的哈希值,或b)響應具有給定名稱的方法的對象。
  3. 如果上下文是哈希,則數據是與名稱關聯的值。
  4. 如果上下文是對象,則數據是方法使用給定名稱返回的值。
  5. 如果在步驟1中保留了任何名稱部分,則應根據僅包含前一個解析結果的上下文堆棧來解析每個名稱部分。 如果任何部分無法通過解析,則結果應視為錯誤,並應作為空字符串插入。

插值之前,應將數據強制轉換為字符串(並在適當時進行轉義)。

簡而言之:您不能使用名稱為'Num.'元素'Num.'

默認情況下,所有變量都是 HTML 轉義的。 如果要返回未轉義的 HTML,請使用三重胡子:{{{name}}}。 如果這不起作用,您可以使用一個函數,該函數僅返回未轉義的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM