以下のヘルパーを使用して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>
が重複する可能性のためにEDIT説明: 私は他のブランチからのエラーメッセージを返すようにしようとしたが、それは正確な結果が得られませんでした。アカウントの1つが閉鎖されていることが判明した場合、閉鎖された口座がないことを単に示しています。それはforループを通らない。 forループは、オブジェクト配列全体を反復したいときのメインパスです。各アカウントの数を持つため
EDIT:
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) を取得していますが、どのように私は私がハンドルバーであることを印刷することができますどのように返すか、言い換えることができますか? 別のヘルパーを書く必要がありますか?
どうすればいいですか?
ありがとうございます。
可能な複製(https://stackoverflow.com/questions/9687099/conditional-if-statement-helper-for-handlebars-js) – Will
[条件Handlebars.jsためのヘルパー "if文"] @私の答えは解決しませんか?私はそれらを試みた。 – JSnewbie
テンプレート関数に渡す前にデータをフィルタリングすることをお勧めします。 – 76484