6

node.js からプリコンパイルして JS テンプレート ファイルを公開するので、nunjucks にクライアント側のテンプレートを使用できます。クライアント側のテンプレートを次のように呼び出します。

nunjucks.render('partials/some-template.html', { abc: 123 })

文字列を取得します。

私が試したようにマクロを呼び出す方法はありますが、これは間違っています。マクロは、最初に node.js に関してページで宣言され、次に Node.js などで連続して呼び出されます。

{% include 'macros/checkbox.html' %}
...
{{ checkbox('you cool?', 'cool', false) }}
{{ checkbox('you collected?', 'collected', false) }}

しかし、マクロを取得してクライアント側で何度も呼び出す方法がわからない。これまでのところ、コンソールで検査を行う努力をしましたが、うまくいきませんでした。

4

1 に答える 1

3

クライアント側でマクロをレンダリングしたいときは、nunjucks.renderStringメソッドを使用してマクロを含むファイルをインポートし、それを呼び出しました。すべて一度に実行しました。私のユースケースは、マクロを HTML にレンダリングしてから、Javascript を使用してページに追加することです。サンプルの使用例は次のとおりです。

var renderString = "{% import 'packageForms.html' as forms %} \n";
renderString = renderString + '{{ form.packageForm("task") }}';
var renderedHTML = nunjucks.renderString(renderString);
$('#page').append(renderedHTML)
于 2015-07-14T22:24:11.163 に答える