我正在使用 web2py 和 jQuery 实现一个网络应用程序。我想使用jquery 模板插件,但该插件使用与 web2py 相同的模板表示法;{{ jQuery code }}
并与 web2py 模板发生冲突。
有什么方法可以禁用 web2py 模板或转义{{
和}}
部分?
我正在使用 web2py 和 jQuery 实现一个网络应用程序。我想使用jquery 模板插件,但该插件使用与 web2py 相同的模板表示法;{{ jQuery code }}
并与 web2py 模板发生冲突。
有什么方法可以禁用 web2py 模板或转义{{
和}}
部分?
您可以禁用 web2py 模板,我只是让控制器函数返回一个字符串。您可能还需要考虑此选项:在 jquery-tmpl.js 中,您可以替换
/{{(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?}}/g
和
/{%(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?%}/g
并使用{%...%}
它来代替,{{...}}
这样就不会再与 web2py 语法发生冲突了。同样,我们向 web2py 添加了一个选项以在此处切换语法。如果这很重要,请将其放在 web2py 邮件列表中。
无论如何,我只是在 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 分钟前)所以试一试,让我知道它是否适合你。请跟进我们的邮件列表。
我也不得不更换
/\${([^}]*)}/g, "{{= $1}}
和
/\${([^}]*)}/g, "{%= $1%}
但在那之后它工作正常。谢谢!