在jade模板中使用!{}和#{}插值(感叹号对象,哈希对象)

时间:2014-02-04 16:17:11

标签: javascript node.js pug

在jade模板中(使用express over node.js),我使用以下语法查看模板:

script(type='text/template', id='data-services') !{data}

我不理解!{ }构造;显然它会将其他地方定义的javascript对象插入:

var data={ name:"Doe", age:"21" };

Jade docs& tuts显示使用#{ }进行插值,但我没有看到!{ }。即使#{ }没有记录,所以我认为它不是特定于玉器的。这种语法来自何处以及它在何处记录?

1 个答案:

答案 0 :(得分:19)

确实很难找到它。看看这个资源:

http://naltatis.github.io/jade-syntax-docs/#escaping

当您想要转义数据时使用

#,而当您希望转义数据时使用!

例如,让我们说name = "Hello <em>World</em>"。然后你有:

#{name} --> Hello &lt;em&gt;World&lt;/em&gt;
!{name} --> Hello <em>World</em>

可以这样想:#会在name显示时显示!,{{1}}会将其视为HTML。