[英]Handlebars.js each helper with if condition
我正在使用下面的助手來遍歷JSON數組,並根據條件返回結果以查找是否關閉帳戶( OpenOrClosedDesc=='Closed'
)。 我正在關閉所有已關閉的帳戶。 但是現在,如果沒有已關閉的帳戶,我想在屏幕上打印錯誤消息。
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){
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.