簡體   English   中英

Handlebars.js每個輔助條件為if

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM