ert*_*rne 27 jsp underscore.js
Underscore.js模板使用<%=%>进行变量插值.不幸的是,这也是在JSP(或GSP)中解释的.有没有办法在JSP中使用Underscore.js模板?
cod*_*man 74
在jsp页面中添加以下插值和评估设置
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@(.+?)\@\>/gim,
escape: /\<\@\-(.+?)\@\>/gim
};
Run Code Online (Sandbox Code Playgroud)
那么你可以编写你的限定下划线变量,if和for语句<@ @>代替<% %>和不会与jsp冲突
Upg*_*ave 24
@ coderman的例子很有帮助,但不幸的是,如果你想在模板中使用换行符,它就不起作用了.例如:
<@
var numPages = 10;
if ( numPages > 1 ) {
@>
<div><@=numPages@></div>
<@}@>
Run Code Online (Sandbox Code Playgroud)
问题是正则表达式evaluate将不符合这里描述的换行符:Javascript正则表达式多行标志不起作用
那么,对我有用的解决方案是:
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@([\s\S]+?)\@\>/gim,
escape: /\<\@\-(.+?)\@\>/gim
};
Run Code Online (Sandbox Code Playgroud)
Zam*_*nji 16
根据您链接到的网页:
如果ERB样式的分隔符不是您的茶,您可以更改下划线的模板设置>使用不同的符号来设置插值代码.
它建议你改变interpolate和正则evaluate表达式.这意味着您可以将<%=%>用法更改为与JSP不冲突的内容.
通过<%在代码中转义序列可以解决这个问题:
<script id="tmpl" type="text/x-template">
<span>Hello, <\%=name%></span>
</script>
Run Code Online (Sandbox Code Playgroud)
因此,您无需更改任何模板引擎逻辑.
| 归档时间: |
|
| 查看次数: |
12582 次 |
| 最近记录: |