JSP中的下划线.js模板
用于变量插值。不幸的是,这也在JSP(或GSP)中解释。有没有办法在JSP中使用下划线.js模板?根据您链接到的网页: 如果您不喜欢ERB样式的分隔符,可以更改下划线的模板设置>,以使用不同的符号来抵消插值代码 它建议您更改JSP中的下划线.js模板,jsp,underscore.js,Jsp,Underscore.js,用于变量插值。不幸的是,这也在JSP(或GSP)中解释。有没有办法在JSP中使用下划线.js模板?根据您链接到的网页: 如果您不喜欢ERB样式的分隔符,可以更改下划线的模板设置>,以使用不同的符号来抵消插值代码 它建议您更改插值和求值正则表达式。 这意味着您可以将用法更改为与JSP不冲突的内容 在jsp页面中添加以下插值和求值设置 _.templateSettings = { interpolate: /\<\@\=(.+?)\@\>/gim, evaluate: /
插值
和求值
正则表达式。
这意味着您可以将用法更改为与JSP不冲突的内容 在jsp页面中添加以下插值和求值设置
_.templateSettings = {
interpolate: /\<\@\=(.+?)\@\>/gim,
evaluate: /\<\@(.+?)\@\>/gim,
escape: /\<\@\-(.+?)\@\>/gim
};
\模板设置={
插入:/\/gim,
评估:/\/gim,
转义:/\/gim
};
然后,您可以使用
而不是
编写限定下划线变量if和for语句,并且不会与jsp冲突@coderman的示例很有帮助,但是,不幸的是,如果您想在模板中使用换行符,它就不起作用了。例如:
<@
var numPages = 10;
if ( numPages > 1 ) {
@>
<div><@=numPages@></div>
<@}@>
注意:
[\s\s]
在evaluate regexp中。这是关键。这个问题可以通过转义来解决。另一个不需要全局替换的选项是指定插值和求值到特定方法调用
_.template($("#template-id").html(),null, {
interpolate : /\{\{\=(.+?)\}\}/g,
evaluate: /\{\{(.+?)\}\}/g
});`
哦,天哪,我想我最好是RTFM!现在我不觉得自己很愚蠢吗谢谢你的快速回复。。。问题解决了。答案是肯定的,但这是为那些(像我一样)希望有一个复制粘贴解决方案的程序员准备的:)我已经添加了那个块,并将我所有的标记都更改为,但它似乎不起作用。有人能解释一下我做错了什么吗?@coderman感谢你在喧闹中理解了普通程序员的真正需求谢谢你!我一直面临着同样的问题
<script id="tmpl" type="text/x-template">
<span>Hello, <\%=name%></span>
</script>
_.template($("#template-id").html(),null, {
interpolate : /\{\{\=(.+?)\}\}/g,
evaluate: /\{\{(.+?)\}\}/g
});`