# 场景
使用`{{expression}}`时,输出的内容会被转义,如:
context为
1 2 3
| { title: '<p>Hello world</p>' }
|
结果生成html:
1
| <div><Hello world></div>
|
最终在页面上显示的就是字符串`
Hello world
`
如果不想进行html的转义,有两种方法:
* {{{
* SafeString
# {{{
在模板中将两个花括号替换成三个花括号,即可避免html字符串被转义
1 2
| <div>{{title}}</div> <div>{{{body}}}</div>
|
传入的context为
1 2 3 4
| { title: '<p>Hello world</p>', body: '<p>Hello world</p>' }
|
生成的结果:
1 2
| <div><Hello world></div> <div><p>Hello world</p></div>
|
页面上显示的就是
1 2
| <p>Hello world</p> Hello world
|
# SafeString
Handlebars提供一个SafeString方法,使用这个方法返回的值即便在{{expression}}中也不会被转义
Handlebars模板:
JavaScript:
1 2 3 4
| Handlebars.registerHelper('sayhi', function(){ var str = '<p>Hello world</p>'; return new Handlebars.SafeString(str); });
|
参考