用Mustache.js转义变量名

时间:2015-06-04 08:42:07

标签: javascript mustache

我有一个csv文件,我正在解析为JSON,然后发送到Mustache.js。问题是一些变量名称形成不好,所以我最终得到的对象可能是这样的:

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

那么我如何在Mustache模板中使用这些变量呢?我尝试了几种不同的方法。

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

但它们都不起作用(如果他们这样做我会更惊讶),并且在文档中找不到有关如何转义变量名的任何内容。

1 个答案:

答案 0 :(得分:1)

手册

  

概述:|插值标签用于集成动态内容   进入模板。

     

标记的内容必须是非空格   字符序列不包含当前的结束分隔符。

     

此标记的内容命名用于替换标记的数据。一个时期   (.)表示当前位于上下文之上的项目   应该使用堆栈;否则,名称解析如下:

     
      
  1. 按期间拆分名称;第一部分是要解决的名称,任何   剩下的部分应该保留。
  2.   
  3. 从上到下遍历上下文堆栈,找到第一个上下文   这是a)包含名称作为键的哈希或b)响应的对象   使用给定名称的方法。
  4.   
  5. 如果上下文是哈希值,则数据是与之关联的值   名称
  6.   
  7. 如果上下文是对象,则数据是由...返回的值   具有给定名称的方法。
  8.   
  9. 如果在步骤1中保留了任何名称部分,则应解决每个部分   对仅包含前者结果的上下文堆栈   解析度。如果任何部分未能解决,则应考虑结果   falsey,并应插入为空字符串。
  10.         

    在插值之前,应将数据强制转换为字符串(并在适当时进行转义)。

简而言之:您不能拥有名称为'Num.'的元素。