【问题标题】:Accessing jQuery itself, and other globals from within jQote2 template从 jQote2 模板中访问 jQuery 本身和其他全局变量
【发布时间】:2014-02-01 19:43:33
【问题描述】:

使用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

查看成功编译的模板,outstringjQote2 正在填充已解析的模板,并填充了数据。我真正能访问的是包含我的数据的this

如何访问jQote2 模板中的全局变量而不触发这个晦涩的错误?

【问题讨论】:

    标签: javascript jquery templates jqote


    【解决方案1】:

    这根本不是范围问题!

    经过大量挖掘和验证jQote2 生成的代码,这就是它的全部内容:

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

    让我们放大一下让一切变得不同的一个角色:&lt;* }); *&gt;

    缺少分号!一旦模板被编译,确保完全关闭代码块似乎非常重要。

    【讨论】:

      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      相关资源
      最近更新 更多