我正在使用web2py和jQuery實現一個web應用程序。我想使用jquery template plugin,但該插件對模板使用與web2py相同的符號; {{ jQuery code }}
並與web2py模板發生衝突。禁用或更改web2py模板中的{{}}分隔符?
有沒有什麼辦法可以禁用web2py模板或者跳過{{
和}}
部件?
我正在使用web2py和jQuery實現一個web應用程序。我想使用jquery template plugin,但該插件對模板使用與web2py相同的符號; {{ jQuery code }}
並與web2py模板發生衝突。禁用或更改web2py模板中的{{}}分隔符?
有沒有什麼辦法可以禁用web2py模板或者跳過{{
和}}
部件?
您可以禁用web2py模板,我只是簡單地控制器函數返回一個字符串。您還可能要考慮此選項:在jQuery的tmpl.js你可以用
/{%(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?%}/g
更換
/{{(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?}}/g
和到位的{{...}}
因此與web2py的語法沒有更多的衝突使用{%...%}
。同樣,我們添加了一個選項,以web2py在那裏切換語法。如果這很關鍵,請將其放在web2py郵件列表中。
我也不得不更換
/\${([^}]*)}/g, "{{= $1}}
與
/\${([^}]*)}/g, "{%= $1%}
但之後,它工作正常。謝謝!
無論如何,我只是在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分鐘前)所以給它一個嘗試,讓我知道,如果它爲你工作。請跟進我們的郵件列表。
我認爲在web2py中切換語法,我們應該等待模板將進入jQuery核心。 – MeanShift 2010-09-08 14:02:08
web2py無法切換,因爲我們promis向後兼容性。我們可以給出不同的選擇。無論如何,我同意。讓我們等着看。使用{{..}}對他們來說不是一個好主意,因爲它與JS衝突。 – mdipierro 2010-09-08 15:01:58