2016-12-20 10 views
0

JSONから直接データを表示するHandlebarsテンプレートを作成しました。しかし、データをJSONに直接表示するのではなく、異なる値から連結する必要があります。一例として、ハンドルバー:JSONの値を組み合わせてテンプレートの新しい入力を作成します

、私はJSON持っている場合:

{ 
"1": {"name": "Bob", "surname": "Bradley", "domain": "gmail"}, 
"2": {"name": "Rob", "surname": "Smedley", "domain": "yahoo"} 
} 

を私は名前、姓、および値から構築電子メール、などなどを格納するためのハンドルバーテンプレートをしたいです

ハンドルバーテンプレート

<script id="user_template" type="text/x-handlebars-template"> 
    {{#each this}} 
    <li> 
     <p>{{name}}</p> 
     <p>{{surname}}</p> 
     <p>{{email}}</p> // I want "[email protected]" here 
    </li> 
    {{/each}} 
</script> 

私はJavaScriptでこれを使用する方法(のwi今

var raw_template = $('#user_template').html(); 

// Compile that into an handlebars template 
var template = Handlebars.compile(raw_template); 

// Retrieve the placeHolder where the Users will be displayed 
var placeHolder = $("#users_table"); 

var html = template(users); // "users" is a JSON object received from AJAX controller 

// Render the posts into the page 
placeHolder.append(html); 

、何とか別の値(電子メール)にJSONから値を組み合わせて、ハンドルバーテンプレートでそれを持っている(良い)方法はどのようになるか:た)今問題となっている電子メールの一部thout ?

+0

メールを使用するか、どこかに保存する必要がありますか、それとも表示するだけですか?他の目的でビルドして表示していないのであれば、その仕事のためのハンドルバーヘルパーを構築することができます! – rule

答えて

0

あなたは

Handlebars.registerHelper('buildEmail', 
    function(name, lastName, domain, options) { 
     return name + lastName + '@' + domain + '.com'; 
    }); 

このヘルパーを構築して、ちょうどあなたのテンプレートに、それを呼び出すことができます。

関連する問題