将值从Handlebar模板传递到Javascript?
我想将对象从Handlebar模板传递到我的Javascript代码来解析它。解析后,我希望它显示在模板中。有可能这样做吗 JSON将值从Handlebar模板传递到Javascript?,javascript,json,templates,handlebars.js,Javascript,Json,Templates,Handlebars.js,我想将对象从Handlebar模板传递到我的Javascript代码来解析它。解析后,我希望它显示在模板中。有可能这样做吗 JSON {users: [ {name: "Frank", lastname: "Franklin", domain: "gmail"}, {name: "Bob", lastname: "Brandy", domain: "yahoo"
{users: [
{name: "Frank", lastname: "Franklin", domain: "gmail"},
{name: "Bob", lastname: "Brandy", domain: "yahoo"},
{name: "Rob", lastname: "Rems", domain: "msn"}
]};
1。将“用户”对象从模板传递到Javascript,并在Javascript中基于JSON输入构建新对象
Users.html
我希望在HTML模板中为每个用户显示:firstname。lastname@domain.com
(使用JSON中的实际值)
问题
问题是,当我尝试这样做时,JSON属性“user.firstname”和“user.lastname”在Javascript中是未知的。有没有办法将JSON从模板传递到Javascript,在那里解析它,然后返回一个新对象来显示?我通过将JSON数据作为隐藏输入元素的值传递来处理这种情况。然后,使用js/jquery,您可以选择这个JSON数据,解析它并访问它的属性。@MohitBhardwaj您能给我举个例子吗?什么样的隐藏输入元素,然后如何访问JSON?@MohitBhardwaj因为用户只是更大的JSON的一部分,所以我需要将“用户”部分存储在某个地方,并以某种方式从Javascript访问它。我对把手知之甚少。我自己用玉。但是你试过用这个{{{buildEmail this}}}代替{{{{buildEmail user}}}吗?@MohitBhardwaj是正确的,它必须是
{{buildEmail this}}
或{buildEmail.}
。此外,没有user.firstname
,只有user.name
。
{{#each users}}
<li>
<!-- How to pass a single User here? -->
<!-- {{email}} would be returned from Javascript as a new value -->
<a href="{{{buildEmail user}}}" target="_blank">{{email}}</a>
</li>
{{/each}}
Handlebars.registerHelper('buildEmail',
function(user, options) {
var firstname = user.firstname;
var lastname = user.lastname;
var domain = user.domain;
return firstname + "." + lastname + "@" + domain + ".com";
});