我正在尝试sprintf
为Dust.js
. 为此,我需要访问@sprintf
块助手的内容。该块可能包含在我访问块主体时需要解释的其他帮助程序或变量 - 意思是,我需要获取主体的结果。
// JSON context: { name: "Fred" }
{@sprintf day="Saturday"}Hello {name}, today is %s!{/sprintf}
如何访问“你好 Fred,今天是 %s!” 在我的辅助功能中?
我正在尝试sprintf
为Dust.js
. 为此,我需要访问@sprintf
块助手的内容。该块可能包含在我访问块主体时需要解释的其他帮助程序或变量 - 意思是,我需要获取主体的结果。
// JSON context: { name: "Fred" }
{@sprintf day="Saturday"}Hello {name}, today is %s!{/sprintf}
如何访问“你好 Fred,今天是 %s!” 在我的辅助功能中?
我最终使用了这个 gist中的代码片段。我对其进行了修改以满足我的需要。
这是我的结果(并回答我自己的问题):
dust.helpers.myHelper = function(chunk, context, bodies, params) {
var output = "";
chunk.tap(function (data) {
output += data;
return "";
}).render(bodies.block, context).untap();
console.log( output ); // This will now show the rendered result of the block
return chunk;
}
这也可以抽象为一个单独的函数:
function renderBlock(block, chunk, context) {
var output = "";
chunk.tap(function (data) {
output += data;
return "";
}).render(block, context).untap();
return output;
}
dust.helpers.myHelper = function(chunk, context, bodies, params) {
var output = renderBlock(bodies.block, chunk, context);
console.log( output ); // This will now show the rendered result of the block
return chunk;
}