Handlebars.js每个助手如果条件
问题描述:
我正在使用下面的帮助器遍历JSON数组并返回基于条件的结果以查找帐户是否已关闭(OpenOrClosedDesc=='Closed'
)。我正在获取所有已关闭的帐户。但是现在如果没有关闭帐户,我想在屏幕上打印一条错误消息。Handlebars.js每个助手如果条件
Handlebars.registerHelper('each_Closed', function(list, opts) {
var i, result = '';
try {
//console.log("List Closed length "+ list.length)
for (i = 0; i < list.length; i++)
if (list[i].OpenOrClosedDesc == 'Closed'){
// console.log("List Closed "+ list[i].OpenOrClosedDesc == 'Closed')
result = result + opts.fn(list[i]);
}
return result;
}catch(e){
}
});
HTML代码:可能的重复
<div id = "Revolving_ClosedAcc">
{{#repData}}
{{#each_Closed arf.TradeLine.TradeLine.[Revolving Accounts]}}
.
.
.
.
.
{{/each_Closed}}
{{/repData}}
</div>
编辑说明: 我试图从一个else分支返回错误信息,但它并没有给出准确的结果。它只是显示如果发现其中一个帐户已关闭,则没有已关闭的帐户。它不通过for循环。 for循环是我想遍历整个对象数组的主要路径。
编辑为每个帐户的数量:
Handlebars.registerHelper('each_Closed', function(list, opts) {
var i, result = '',resCounter=0,closedAccountFound = false;
try {
//console.log("List Closed length "+ list.length)
for (i = 0; i < list.length; i++) {
if (list[i].OpenOrClosedDesc == 'Closed') {
// console.log("List Closed "+ list[i].OpenOrClosedDesc == 'Closed')
result = result + opts.fn(list[i]);
resCounter++;
closedAccountFound = true;
}
}
console.log(resCounter);
return closedAccountFound ? result : "No close account found.";
}catch(e){
}
});
我正在在执行console.log(resCounter)计数 ,但我怎么能返回或者换句话说,我怎么可以打印在车把? 我必须写另一个帮手吗?
我该怎么做?
在此先感谢。
答
只需添加一个变量closedAccountFound = false
,并在发现任何已关闭的帐户时将其赋值为true,然后在返回结果前检查该值,如果closedAccountFound
为true,则返回结果,否则返回消息。
Handlebars.registerHelper('each_Closed', function(list, opts) {
var i, result = '', closedAccountFound = false;
try {
//console.log("List Closed length "+ list.length)
for (i = 0; i < list.length; i++)
if (list[i].OpenOrClosedDesc == 'Closed'){
// console.log("List Closed "+ list[i].OpenOrClosedDesc == 'Closed')
result = result + opts.fn(list[i]);
closedAccountFound = true;
}
return closedAccountFound ? result : "No close account found.";
}catch(e){
}
});
的可能的复制[条件 “if语句” 帮手Handlebars.js(https://*.com/questions/9687099/conditional-if-statement-helper-for-handlebars-js) – Will
@它会不会解决我的答案。我试过那些。 – JSnewbie
我会推荐过滤你的数据_before_传递给你的模板函数。 – 76484