2015-10-24 25 views
1

我希望根據條件顯示不同的HTML。如何比較車把中的值?

它似乎沒有比較這兩個值,它總是顯示第一個變體。我如何將預定義值與JSON中的原始值進行比較,以便它可以正確執行?

{{#each this}} 
    {{#each visits}} 
    <div class="row"> 
     {{#if variable_from_json }} 
     <div class="col-lg-2 col-md-2 col-sm-2"> 
      <i class="fa fa-home"></i> 
     </div> 
     {{else}} 
     <div class="col-lg-2 col-md-2 col-sm-2"> 
      <i class="fa fa-plus symbol-hospital"></i> 
     </div> 
     {{/if}} 
    </div> 
    {{/each}} 
{{/each}} 

JS代碼

Handlebars.registerHelper('if', function (variable_from_json, options) { 
    if (variable_from_json === "M") { 
     return options.fn(this); 
    } else { 
     return options.inverse(this); 
    } 
}); 

回答

1

比較喜歡值==,> =,|| ,& & 創建一個助手,這將處理所有案件

Handlebars.registerHelper("when",function(operand_1, operator, operand_2, options) { 
    var operators = { 
    'eq': function(l,r) { return l == r; }, 
    'noteq': function(l,r) { return l != r; }, 
    'gt': function(l,r) { return Number(l) > Number(r); }, 
    'or': function(l,r) { return l || r; }, 
    'and': function(l,r) { return l && r; }, 
    '%': function(l,r) { return (l % r) === 0; } 
    } 
    , result = operators[operator](operand_1,operand_2); 

    if (result) return options.fn(this); 
    else return options.inverse(this); 
}); 

使用該運營商在車把文件如。 ==運營商

{{#when <operand1> 'eq' <operand2>}} 
    // do something here 
{{/when}} 
+0

它不工作。 – xxCodexx

+0

@HasmitRajput可以再次檢查一遍。我改變了格式 –