0

jquery-tmpl のメインタグを置き換える方法はありますか?

例:

var data = {名前: 'ペレ', 言語: ["ポルトガル語","英語","スペイン語"]};

したがって、script タグで次のテンプレートを定義します。

名前: ${名前} {{各言語}} 私は $value {{/each}} を話します

私が変更したかったのは... {{each}} を使用する代わりに、$$each$$ のようなものを使用します ${Name} の代わりに、$#Name$ のようなものを使用します

なぜ私がこれをやりたいのかと自問するかもしれません。

主な理由は、私たちが取り組んでいるプロジェクトで Django を使用しており、{{each}} のようなコードを配置した場合 (タイプが text/html に設定されたスクリプト タグであっても)、Django ビュー エンジンがサーバー タグであると認識し、サーバー側のタグであるかのようにレンダリングしようとします。

更新:私が探しているのは、Mustache.js http://mustache.github.com/mustache.5.html ( Set Delimiterを探します) で利用できるような、jQuery-tmpl で区切り記号を設定する方法です 。

ありがとう。

4

3 に答える 3

1

もちろん、{HTMLにリテラルが必要な場合は、を使用templatetagしてくださいopenblock

{% templatetag openblock %}

リテラルが必要な場合は、次}を使用しますcloseblock

{% templatetag closeblock %}

したがって{{each}}、HTMLが必要な場合は、次を使用します。

{% templatetag openblock %}{% templatetag openblock %}each{% templatetag closeblock %}{% templatetag closeblock %}
于 2010-12-09T12:01:50.047 に答える
1

別のアプローチは、djangoによってテンプレートとして処理されないjsファイルでテンプレートを定義することです。

それが不可能な場合、Dominicのアプローチの別の代替手段は、'{{'および'}}'の変数をそれに応じて定義し、それに応じてjqtmpl_openおよびjqtmpl_closeを定義し、次のようなテンプレートで使用することです。

{{ jqtmpl_open }}each Languages{{ jqtmpl_close }}

これは、テンプレートで読みやすくなります。

jquery-tmplの区切り文字の変更は複雑です。コードを見ると、{{はいくつかの正規表現内にハードコーディングされているようです。

var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]* (<[\w\W]+>)[^>]*$|\{\{\! /,
   newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];

唯一の解決策は、プロジェクトのjquery-tmplをフォークし、これらのハードコードされた正規表現をニーズに合わせて変更することです。

于 2010-12-09T12:12:49.963 に答える
0

この質問はすでにここで尋ねられていますjquery template tags conflict with Django template! しかし、私は自分の経験から追加すると思いました。

簡単に言うと、このカスタムの「生の」テンプレート タグを jquery-tmpl/django プロジェクトに追加しました: http://www.holovaty.com/writing/django-two-phased-rendering/

于 2010-12-09T16:34:25.207 に答える