javascript - 需要 Handlebars.js 来渲染对象数据而不是 "[Object

我正在使用 Handlebars 模板,并且 JSON 数据已经在 [Object object] 中表示,如何在 Handlebars 之外解析这些数据?例如,我试图通过 handlebars 标记在页面上填充 JavaScript 变量,但这不起作用。

有什么建议吗?谢谢!

编辑:

为了澄清,我正在使用带有 Handlebars 的 ExpressJS 进行模板化。在我的 route ,我有这个:

var user = {}
user = {'id' : 123, 'name' : 'First Name'}

res.render('index', {user : user});

然后在我的 index.hbs 模板中,我现在有一个 {{user}} 对象。我可以使用 {{#each}} 来遍历对象就好了。但是,我也在使用 Backbonejs,我想将此数据传递给 View ,例如:

myView = new myView({
   user : {{user}}
});

问题在于 {{user}} 只是在源代码中显示 [Object object]。如果我把它放在 console.log 中,我会收到一个错误,上面写着“意外的标识符”。

最佳答案

当输出 {{user}} 时,Handlebars 将首先检索 user.toString() 值。对于普通的Object,default result of this is the "[object Object]"你看到了。

为了获得更有用的东西,您要么想要显示对象的特定属性:

{{user.id}}
{{user.name}}

或者,您可以使用/定义帮助器以不同方式格式化对象:

Handlebars.registerHelper('json', function(context) {
    return JSON.stringify(context);
});
myView = new myView({
    user : {{{json user}}} // note triple brackets to disable HTML encoding
});

关于javascript - 需要 Handlebars.js 来渲染对象数据而不是 "[Object object]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232574/

相关文章:

java - gson 抛出 MalformedJsonException

c# - 使用 JSON.net 获取 JToken 的名称/ key

json - Groovy - 将对象转换为 JSON 字符串

ruby-on-rails - Ruby on Rails - 为多个模型渲染 JSON

json - 如何不使用 Go 将空结构编码为 JSON?

json - 有 JSON 的流 API 吗?

javascript - AJAX跨域调用

javascript - Angular 5 服务读取本地 .json 文件

arrays - 通过 JSON 将对象数组发布到 ASP.Net MVC3

python - 将 Python namedtuple 序列化为 json