2010-09-08 20 views

回答

2

您可以禁用web2py模板,我只是簡單地控制器函數返回一個字符串。您還可能要考慮此選項:在jQuery的tmpl.js你可以用

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

更換

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

和到位的{{...}}因此與web2py的語法沒有更多的衝突使用{%...%}。同樣,我們添加了一個選項,以web2py在那裏切換語法。如果這很關鍵,請將其放在web2py郵件列表中。

+0

我認爲在web2py中切換語法,我們應該等待模板將進入jQuery核心。 – MeanShift 2010-09-08 14:02:08

+0

web2py無法切換,因爲我們promis向後兼容性。我們可以給出不同的選擇。無論如何,我同意。讓我們等着看。使用{{..}}對他們來說不是一個好主意,因爲它與JS衝突。 – mdipierro 2010-09-08 15:01:58

0

我也不得不更換

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

/\${([^}]*)}/g, "{%= $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') 

,並在缺省的/ index.html的:

{%=message%} 

這是非常新的(5分鐘前)所以給它一個嘗試,讓我知道,如果它爲你工作。請跟進我們的郵件列表。