我正在尝试将对象字符串化为json并将其传递给模板。但相反,我将整个对象视为一个字符串,而不仅仅是我想要的东西。
代码
Handlebars.registerHelper("GetFBUserDetails", function() {
var details = new Object({'fName' : firstName, 'lName' : lastName, 'pic' : pictureUrl});
return JSON.stringify(details);
});
<li>{{#GetFBUserDetails}}
{{fName}}
{{/GetFBUserDetails}}
</li>
我只希望在li中显示firstname(fName),而整个对象显示为字符串。
答案 0 :(得分:1)
JSON.stringify()
执行它命名的内容,它接受一个JSON对象并将其序列化为一个字符串。把手使用的是对象,而不是字符串。
这应该这样做:
Handlebars.registerHelper("GetFBUserDetails", function() {
return {'fName' : firstName, 'lName' : lastName, 'pic' : pictureUrl};
});
答案 1 :(得分:1)
要应用模板,您需要将结果实际传递给Handlebars处理器。使用回调函数的参数(选项)对对象(未进行字符串化)执行此操作:
Handlebars.registerHelper("GetFBUserDetails", function(options) {
var details = new Object({'fName' : firstName, 'lName' : lastName, 'pic' : pictureUrl});
return options.fn(details);
});