私はNodeJS/Express3とdusts-linkedinを使用しており、以下と同等のことをしたいと思っています:
for(var i = locals.first;i < (locals.first + locals.pages); $i++) {
<div>i</div>
}
ヘルパー関数を作成する必要があると思いますが、その方法が不明です
Ok。私の場合、ページャーを作成しようとしていましたが、一般的なアイデアを得ることができるように、答えを少し単純化します。これを行うためのよりクリーンな方法があるかもしれません。
私のヘルパーは「ページャー」と呼ばれます。渡したいローカルにいくつかの明示的な変数があります。これらは locals.start と locals.end です。それぞれは、ページャーの開始と終了を表す数値です。また、ページャーに使用する URL も渡します。
私のテンプレートでは、必要なすべてのパラメーターとともにヘルパーを呼び出します。
{@pager start="{locals.start}" end="{locals.end}" url="/articles?page=%page%"/}
次に、アプリにこのヘルパーを追加します。ダスト モジュールが存在することを確認する必要があります。
cons = require('consolidate'),
dust = require('dustjs-linkedin'),
次に、ヘルパーを作成します。
dust.helpers['pager'] = function(chunk, context, bodies, params) {
//tapping these to get the actual value (since we passed vsaraibles) and casting as a number with '+'
first = +dust.helpers.tap(params.first, chunk, context);
last = +dust.helpers.tap(params.last, chunk, context);
//this one is all ready since we just passed a string
url = params.url;
//build our html - do whatever you need here - this is an example
var html = '<ul>';
for(var i = first; i <= last; i++) {
//I used a replace and placeholder - prob other methods you can use
html += '<li><a href="' + url.replace('%page%', i) + '">' + i '</a></li>';
}
html += '</ul>';
//write this back to the template
chunk.write(html);
//return it
return chunk;
};
これが誰かを助けることを願っています