无法使用车把助手渲染json细节

时间:2013-10-22 15:40:12

标签: javascript jquery json handlebars.js

我正在尝试将对象字符串化为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),而整个对象显示为字符串。

2 个答案:

答案 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);
});

Fiddle