Using !{ } and #{ } interpolation in a jade template (exclamation-object, hash-object)

为君一笑 提交于 2019-11-29 17:14:35

问题


In a jade template (using express over node.js), I see a template using the following syntax:

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

I don't understand the !{ } construct; apparently it interpolates a javascript object defined elsewhere as:

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

Jade docs & tuts show the use of #{ } for interpolation, but I don't see !{ }. Even #{ } is not documented, so I think it's not jade-specific. Where does this syntax come from and where is it documented?


回答1:


Quite difficult to find it, indeed. Have a look at this resource:

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

# is used when you want to escape data and ! when you want it raw.

For example let's say that name = "Hello <em>World</em>". Then you have:

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

Think about it like that: # will display name as it is written while ! will treat it as HTML.



来源:https://stackoverflow.com/questions/21557663/using-and-interpolation-in-a-jade-template-exclamation-object-hash-o

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!