在web2py模板中禁用或更改{{}}分隔符?

时间:2010-09-08 13:32:45

标签: jquery templates plugins web2py

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

我有什么方法可以停用网络模板或转义{{}}部分?

3 个答案:

答案 0 :(得分:2)

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

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

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

并使用{%...%}代替{{...}},因此不再与web2py语法冲突。同样,我们在web2py中添加了一个选项来切换语法。如果这很关键,请将其提交到web2py邮件列表。

答案 1 :(得分:2)

无论如何,我只是在web2py trunk中实现了任意分隔符。现在你可以在一个控制器中做到:

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')

并在default / index.html中:

{%=message%}

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

答案 2 :(得分:0)

我还得替换

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

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

但之后它运作正常。谢谢!