我正在使用下面的幫助器遍歷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)計數 ,但我怎麼能返回或者換句話說,我怎麼可以打印在車把? 我必須寫另一個幫手嗎?
我該怎麼做?
在此先感謝。
的可能的複製[條件 「if語句」 幫手Handlebars.js(https://stackoverflow.com/questions/9687099/conditional-if-statement-helper-for-handlebars-js) – Will
@它會不會解決我的答案。我試過那些。 – JSnewbie
我會推薦過濾你的數據_before_傳遞給你的模板函數。 – 76484