我使用Handlebars.js遇到了当前项目的问题。我正在编写一个复杂的模板,它必须只作为文本输出(它作为字符串直接输入到文本打印机),并且该文本最多可以有40个字符宽。
我遇到的问题是我需要使用各种辅助函数来获取和组织我的数据,但是我需要将该文本放在另一个函数中以将其格式化为40个字符宽度。
所以......我的助手函数看起来有点像这样:
Handlebars.registerHelper('getLit' , function (litName) {
// some logic to retrieve a string lit in correct language
});
Handlebars.registerHelper('getArrayValue', function(array, key) {
return array[key];
});
Handlebars.registerHelper('textFormat', function(string, max_width, align) {
// logic to format the text
});
现在如果我的htm看起来像这样:
{{textFormat "This is a really long string that needs formating into the correcct length blah blah blah blah" 40 'left'}}
我没有问题。
但是我需要能够使用辅助函数来构建字符串,例如
{{textFormat {{getArrayValue address 0}} 40 'right'}}
我希望我的解释不会太复杂,显然我正在处理的数据非常庞大且非常复杂,因此只需准备好所有数据以提供给模板(例如,而不是使用getLit在其中生成每个字符串的6种形式各种语言)都不实用。
无论如何要做这项工作还是我需要使用完全不同的方法?
答案 0 :(得分:0)
您不能使用嵌套的帮助器。如果需要包含新助手,请使用construct
{{#textformat 10 'right'}}
{{getArrayValue address 0}}
{{/textformat}}
您可以在此处找到有关构建块帮助程序的更多信息:http://handlebarsjs.com/block_helpers.html