1

我在 jsp 应用程序中使用带骨干的下划线。

为了做到这一点,我使用了:

_.templateSettings = {
        interpolate : /\{\{(.+?)\}\}/g
    };

为了有类似小胡子的模板以避免jsp冲突。

到此为止,一切正常(即用简单的值正确填充模板)。

现在,我试图在模板中添加一个 for 循环以显示一个 json 数组。

所以我添加了这段代码:

<script type="text/template" id="im-template">
<div class="row">                                       
    <div class="horizontal-scroll">
        {{ for (var i = 0; i < data.length; i++) { 
            var template = data[i];
            alert(template.name);
        } }}
    </div>
</div>
</script>

但是在运行应用程序时,我得到:

Uncaught SyntaxError: Unexpected token for 

您知道可能是什么问题或我该如何解决?

提前致谢!

4

1 回答 1

3

您正在替换错误的正则表达式,您想要替换评估正则表达式而不是插值正则表达式。来自精美手册

定义一个插值正则表达式以匹配应逐字插入的表达式,一个转义正则表达式以匹配应在 HTML 转义后插入的表达式,以及一个评估正则表达式以匹配应在不插入结果字符串的情况下计算的表达式。

插值用于将模板标记替换为 JavaScript表达式的结果,但for循环不是 JavaScript 中的表达式。

如果你想使用这样的循环,你想替换评估for正则表达式:

_.templateSettings.evaluate = /\{\{(.+?)\}\}/g;

演示:http: //jsfiddle.net/ambiguous/gaYRb/

于 2012-06-18T16:22:28.310 回答