0

使用jQote,我的模板可以正确编译到 lamdas 中,除非我使用类似的东西$.each(),或者尝试访问其他全局变量,比如我自己的环境变量通过_.*...访问,类似于jQuery通过$.*

我的标签设置为<* *>......我需要能够做这样的事情:

<* $.each( this.scheduled, function( i, s ) { *>
    <a href="<*= _.base *>/.calendar/goto/<*= s.timestamp *>">
        <*= s.readable *>
    </a>
<* }) *>

例如,这样做会给我这个错误,因为使用$._... 如果我从 更改$.each()for() { }例如,则会_.*触发相同类型的错误:

Expected an identifier but found 'out' instead

查看成功编译的模板,是out填充了已解析的模板,填充了数据。我真正可以访问的是包含我的数据的。stringjQote2this

如何在jQote2不触发此晦涩错误的情况下访问模板内的全局变量?

4

1 回答 1

0

这根本不是范围问题!

经过大量挖掘和验证生成的代码jQote2,这就是它最终的结果:

<* $.each( this.scheduled, function( i, s ) { *>
    <a href="<*= _.base *>/.calendar/goto/<*= s.timestamp *>">
        <*= s.readable *>
    </a>
<* }); *>

让我们放大一个让一切变得不同的角色:<* }); *>

缺少分号!一旦模板被编译,确保完全关闭代码块对于应用到模板的压缩级别似乎非常重要。

于 2014-02-01T20:57:45.420 回答