2016-02-29 32 views
0

現在我有此JSON結構如何使用Handlebars排除數組/對象元素?

"administration" : [ 
    { 
    "name" : "Sigfried Bermudez", 
    "role" : "Associate Director" 
    }, 
    { 
    "name" : "Karen Madrigal", 
    "role" : "QA Manager" 
    }, 
    { 
    "name" : "Jorge Lopez", 
    "role" : "Project Manager" 
    } 
] 

,你們看數組中的最後一個元素說"role" : "Project Manager",和我不包括從視圖中該元素的方式是這樣的

{{#each chart-container.[3].administration}} 
    {{#unless @last}} 
      <span>{{@key}} {{this.name}}</span> 
    {{/unless}} 
{{/each}} 

但什麼關於那個元素改變了位置?

我需要知道的是,如果我可以做類似{{#unless this.role.toLowerCase().indexof("project")}}或在這種情況下最好的選擇是什麼?如果有一種方法從HTML做到這一點,那將是真棒:)

回答

2

工作例如:JsFiddle

使用把手幫手:

var entry_template = document.getElementById('entry-template').innerHTML; 
var data = [ 
    { 
    "name" : "Sigfried Bermudez", 
    "role" : "Associate Director" 
    }, 
    { 
    "name" : "Karen Madrigal", 
    "role" : "QA Manager" 
    }, 
    { 
    "name" : "Jorge Lopez", 
    "role" : "Project Manager" 
    } 
] 

Handlebars.registerHelper("ifvalue", function(conditional, options) { 
    if (conditional !== options.hash.notequals) { 
    return options.fn(this); 
    } else { 
    return options.inverse(this); 
    } 
}); 

var template = Handlebars.compile(entry_template); 
var template_with_data = template(data); 

document.getElementById('data').insertAdjacentHTML('afterbegin', template_with_data); 

模板:

<script id="entry-template" type="text/x-handlebars-template"> 
    {{#each this}} 
    {{#ifvalue this.role notequals="Project Manager"}} 
     {{this.name}} 
    {{/ifvalue}} 
    {{/each}} 
</script> 
<div id="data"> 
</div> 
相關問題