これを見た、
chunk = chunk.write("<li>").render(bodies.block, context.push(items[i])).write("</li>\n");
このコードを見る前に、私は、render
に似たものflush
、そしてwrite
「バッファに書き込む」に似たものだと思っていました。当然、次のようなコードになります。
for loop
chunk.write("something")
end for loop
chunck.render();
ただし、最初のコードでわかるように、書き込みの間にレンダリングが行われます。誰かがこれら2つの機能の違いを説明できますか?
@JAiro:
あなたの答えを読んだ後、私は以下のコードを試しました:
テマプレート: You have {render} {write}
データ:
{
"name": "Mick",
"render": function(c,ct,b){
chunk.render("Rendered {~n}");
},
write:function(c,ct,b){
chunk.write("Written {~n}")
}
}
期待される出力:
you have Rendered
Written {~n}
{~n}
「Rendered」の後の単語は解釈されますが、「Written」の後の{〜n}は解釈されないことに注意してください。
ただし、実際の出力は期待される出力と同じではありません。jsfiddleを投稿していただけませんか。理解に役立ちます。実際の出力は空の文字列です。これは、コードにエラーがある可能性があることも示しています。