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

use*_*541 14 javascript node.js pug

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

script(type='text/template', id='data-services') !{data}
Run Code Online (Sandbox Code Playgroud)

我不明白这个!{ }结构; 显然它会将其他地方定义的javascript对象插入:

var data={ name:"Doe", age:"21" };
Run Code Online (Sandbox Code Playgroud)

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

fre*_*ish 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>
Run Code Online (Sandbox Code Playgroud)

可以这样想:它#会在显示时显示name,同时!将其视为HTML.

  • thx freakish,thx naltatis for missing docs.有点滑稽的玉忘了解释插值... (2认同)