4

TLDR; 主な質問については、一番下の段落にスキップしてください。

なぜこれをやりたいのか、そしてそれを取り巻く文脈を省くことによって、これを素晴らしく簡潔に保つように努めます。ただし、少なくとも、Node.jsをバックエンドで実行し、Dust.jsを使用してすべてのビューをレンダリングしています。

次に、必要に応じてインターフェイス要素を動的にレンダリングするDustのクライアント側コピーもあります。これが本番環境に入るとき、クライアント側のすべてのDustテンプレートをプリコンパイルし、この問題を完全に回避します。ただし、開発中は、テンプレートをDOM要素内に保持できれば、テストははるかに簡単になります。ただし、これらの「サブテンプレート」は、クライアント側のテンプレートでの使用を目的としたタグがnull値で埋められるため(サーバー側のレンダラーに提供できなかったため)、混乱します。

私がこのテンプレートを持っているとしましょう:

<!DOCTYPE html>
<html>
<head>
    <title>{title}</title>
</head>
<body>
    <div id="some_template_to_be_rendered_client_side">
        <p>{description}</p>
    </div>
</body>
</html>

テンプレートがレンダリングされるときに、{title}テンプレートタグにNode.js Dustを入力したいのですが、テンプレートを動的にコンパイルしてレンダリングできるように、{description}タグをエスケープする方法を探しています。クライアント側で、div内のHTMLをテンプレートとして使用します。

4

2 に答える 2

13

{生または}ほこりの中で脱出するために使用できる特別な脱出タグがあります。彼らは{~lb}{~rb}です。

例えば

{~lb}hello{~rb}

次のようにレンダリングされます

{hello}
于 2012-06-29T03:25:18.323 に答える
0

5つの特殊文字のみをエスケープできます[ドキュメント:https://www.dustjs.com/docs/syntax/]

{〜special}特殊文字は特殊文字に変換されます

スペシャルは、単一の操作中括弧{の後にチルダ〜が続き、参照内の任意の文字が続き、その後に単一の終了中括弧}が続きます。ダストは5つの「スペシャル」をサポートします。

{〜s}は単一のスペースになります{〜n}は改行になります{〜r}はキャリッジリターンになります{〜lb}は左中括弧になります{{〜rb}は右中括弧になります}

于 2020-10-01T18:45:19.523 に答える