展开变量内的标签

时间:2016-04-02 01:04:02

标签: javascript node.js mustache

有没有办法让Mustache扩展变量中的标签?

我明白这是局部的目的。但是,正如您在下面的示例中所看到的,由于视图的结构,有时使用partials是不切实际的。

如果没有,我应该如何更改下面视图的结构?目前,我提前呈现每个条目的html属性。这似乎并不理想(并且打破了更改Mustache分隔符等功能)。

示例

博客主页的视图:

var view = {
   title: 'Example blog',
   entries: [
     {url: '/a', html: '<p>The first entry on {{title}}</p>'},        
     {url: '/b', html: '<p>The second entry on {{title}}</p>'},     
     {url: '/c', html: '<p>The third entry on {{title}}</p>'}
   ]
};

相应的模板:

{{#entries}}
  {{{html}}}
{{/entries}}

致电Mustache.render后,我收到了此消息。

<p>The first entry on {{title}}</p>        
<p>The second entry on {{title}}</p>
<p>The third entry on {{title}}</p>

我想收到这个:

<p>The first entry on Example blog</p>        
<p>The second entry on Example blog</p>
<p>The third entry on Example blog</p>

2 个答案:

答案 0 :(得分:3)

Mustache不会这样做,并且你不希望它。它被称为“胡子注入”,它相当于SQL注入。

当Twitter第一次开始使用Mustache客户端时,发生了一次攻击,在其中发布带有Mustache标记的URL会导致任何查看该推文的人转发它。修复是为了防止Mustache双扩展标签。

答案 1 :(得分:1)

试试这个:

=DEC2BIN(MOD(QUOTIENT($A$1,16^3),16),4)&" "&DEC2BIN(MOD(QUOTIENT($A$1,16^2),16),4)&" "&DEC2BIN(MOD(QUOTIENT($A$1,16^1),16),4)&" "&DEC2BIN(MOD(QUOTIENT($A$1,16^0),16),4)

0011 0001 0000 0001