Bry*_*yan 5 haml interpolation ruby-on-rails underscore.js underscore.js-templating
我试图让if/else插入与Underscore.js和HAML一起使用,但无济于事.我已经将Underscore.js中的插值设置更改为以下内容:
_.templateSettings = {
interpolate : /\{\{([\s\S]+?)\}\}/g
};
Run Code Online (Sandbox Code Playgroud)
当我尝试在{{value}}之类的符号中插入值时,这很有效.但是,我没有使if/else语句有效.我有以下内容:
{{ if (true) { }}
{{ val }}
{{ } }}
Run Code Online (Sandbox Code Playgroud)
我得到一个Javascript异常"Uncaught SyntaxError:Unexpected token if".非常感谢帮助.
mu *_*ort 10
下划线模板使用三组不同的分隔符:
evaluate:这是针对JavaScript的一些内容,<% ... %>默认情况下.interpolate:这是为了转储变量的内容,<%= ... %>默认情况下.escape:默认情况下interpolate,也可以转义HTML <%- ... %>.这些大多匹配ERB语法.您尝试使用不是表达式的JavaScript的插值语法:
{{ if(true) { }}
Run Code Online (Sandbox Code Playgroud)
但这不会起作用,因为if它不是JavaScript中的表达.
您可能想要覆盖所有三种模式:
_.templateSettings = {
evaluate : /\{\{([\s\S]+?)\}\}/g,
interpolate : /\{\{=([\s\S]+?)\}\}/g,
escape : /\{\{-([\s\S]+?)\}\}/g
};
Run Code Online (Sandbox Code Playgroud)
然后说出这样的话:
{{ if (true) { }}
{{= val }}
{{ } }}
Run Code Online (Sandbox Code Playgroud)
如果您可以将模板限制为简单替换,那么您可以在模板中使用interpolate和{{expr}}.
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |