我创建了一个直接从JSON显示数据的Handlebars模板。但是,我还需要显示数据不是直接在JSON中,而是必须从其中的不同值连接。
例如,如果我有JSON:
{
"1": {"name": "Bob", "surname": "Bradley", "domain": "gmail"},
"2": {"name": "Rob", "surname": "Smedley", "domain": "yahoo"}
}
我希望Handlebars模板包含名称,姓氏和电子邮件从值构建,如下所示:
把手模板
<script id="user_template" type="text/x-handlebars-template">
{{#each this}}
<li>
<p>{{name}}</p>
<p>{{surname}}</p>
<p>{{email}}</p> // I want "name.surname@domain.com" here
</li>
{{/each}}
</script>
我在Javascript中使用它的方式(没有现在出现问题的电子邮件部分)是:
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中的值组合到另一个值(电子邮件)并将其放在Handlebars模板中的(好)方法是什么?
答案 0 :(得分:0)
你可以建立这个帮手
Handlebars.registerHelper('buildEmail',
function(name, lastName, domain, options) {
return name + lastName + '@' + domain + '.com';
});
然后在模板上调用它。
{{#each this}}
<li>
<p>{{name}}</p>
<p>{{surname}}</p>
<p>{{{buildEmail name surname domain}}}</p>
</li>
{{/each}}