2017-09-26 21 views
0

再帰JSONを使用してハンドルバーテンプレートを作成したいのですが、JSONのキーが何であるかわかりません(変更可能)。また、IF構文が必要です。それを行うヘルパーを作成する方法はありますか?今私の答えは[オブジェクトオブジェクト]です。再帰JSONハンドルバー

var json={ 
"results": [ 
{ 
    "collection": "employer", 
    "summary":{ 
    "person": [ 
     { "name": "My name" }, 
     { "lastname": "My lastname" }, 
     { "address": "Street" } 
    ], 
    "job": "CEO" 
    } 
}, 
{ 
    "collection": "employer", 
    "summary":{ 
    "person": [ 
     { "name": "My name" }, 
     { "lastname": "My lastname" }, 
     { "address": "Street" } 
    ], 
    "job": "Administrator" 
    } 
}, 
{ 
    "collection": "company", 
    "summary": "Company1" 
}, 
{ 
    "collection": "company", 
    "summary": "Company2" 
} 
    ] 
}; 

My output

ありがとう:これは私のjsfiddle https://jsfiddle.net/deherinu/dvn4076h/

私のJSONです!

答えて

0

personオブジェクトの周りにコンテンツをラップします。

<script id="template" type="text/x-handlebars-template"> 
    <div style="width: 80%; margin: 0 auto;"> 
    {{#results}} 
    <h3 style="text-transform: uppercase;">{{collection}}</h3> 
    {{#xif " collection == 'employer' " }} 
    {{#summary}} 
    {{#person}} 
    <div> 
     <table> 
     <tbody> 
      {{#each this}} 
      <tr> 
      <td><b>{{@key}}</b></td> 
      <td>{{this}}</td> 
      </tr> 
      {{/each}} 
     </tbody> 
     </table> 
    </div> 
    {{/person}} 
    {{/summary}} 
    {{else}} 
    <div> 
     {{summary}} 
    </div> 
    {{/xif}} 
    {{/results}} 
    </div> 
</script> 
+0

私はキーの名前を知らないことが問題です。「人」が別のものになる可能性があります。 – kakaw

+0

Hmm。入力データ形式を知らなくてもデータをバインドするのは難しいです。 – Thusitha