web2py と jQuery を使用して Web アプリを実装しています。jquery テンプレート プラグインを使用したいのですが、プラグインは web2py と同じテンプレート表記を使用します。{{ jQuery code }}
web2py テンプレートと衝突します。
web2py テンプレートを無効にしたり、{{
and}}
の部分をエスケープしたりする方法はありますか?
web2py と jQuery を使用して Web アプリを実装しています。jquery テンプレート プラグインを使用したいのですが、プラグインは web2py と同じテンプレート表記を使用します。{{ jQuery code }}
web2py テンプレートと衝突します。
web2py テンプレートを無効にしたり、{{
and}}
の部分をエスケープしたりする方法はありますか?
とにかく、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')
そしてdefault/index.htmlで:
{%=message%}
これは非常に新しい (5 分前) ので、試してみて、うまくいくかどうかお知らせください。メーリングリストでフォローアップしてください。
コントローラー関数が代わりに文字列を返すようにするだけで、web2py テンプレートを無効にすることができます。このオプションを検討することもできます: jquery-tmpl.js で置き換えることができます
/{{(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?}}/g
と
/{%(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?%}/g
{%...%}
代わりに使用する{{...}}
ので、web2py 構文と競合しなくなります。同様に、構文を切り替えるオプションをweb2pyに追加しました。これが重要な場合は、web2py メーリング リストで取り上げてください。
I also had to replace
/\${([^}]*)}/g, "{{= $1}}
with
/\${([^}]*)}/g, "{%= $1%}
but after that it works fine. Thank you!