2

我正在使用 web2py 和 jQuery 实现一个网络应用程序。我想使用jquery 模板插件,但该插件使用与 web2py 相同的模板表示法;{{ jQuery code }}并与 web2py 模板发生冲突。

有什么方法可以禁用 web2py 模板或转义{{}}部分?

4

3 回答 3

2

您可以禁用 web2py 模板,我只是让控制器函数返回一个字符串。您可能还需要考虑此选项:在 jquery-tmpl.js 中,您可以替换

/{{(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?}}/g

/{%(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?%}/g

并使用{%...%}它来代替,{{...}}这样就不会再与 web2py 语法发生冲突了。同样,我们向 web2py 添加了一个选项以在此处切换语法。如果这很重要,请将其放在 web2py 邮件列表中。

于 2010-09-08T13:50:31.107 回答
2

无论如何,我只是在 web2py 主干中实现了任意分隔符。现在您可以在控制器中执行以下操作:

def render(filename,**variables):
    context = globals()
    context.update(variables)
    from gluon.template import render
    return render(filename=os.path.join(request.folder,'views',filename),
                  path=os.path.join(request.folder,'views'),
                  context=context,delimiters=('{%','%}'))

def index():
    return render('default/index.html',message='hello world')

在默认/index.html 中:

{%=message%}

这是非常新的(5 分钟前)所以试一试,让我知道它是否适合你。请跟进我们的邮件列表。

于 2010-09-08T14:44:25.127 回答
0

我也不得不更换

/\${([^}]*)}/g, "{{= $1}} 

/\${([^}]*)}/g, "{%= $1%}

但在那之后它工作正常。谢谢!

于 2010-09-08T14:04:03.193 回答