当前位置: 首页 > 面试题库 >

Handlebars.js解析对象而不是[Object object]

江衡
2023-03-14
问题内容

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

有什么建议?谢谢!

编辑:

为了澄清起见,我使用的是带有手把的ExpressJS模板。在我的路线中,我有这个:

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

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

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

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

问题是,如果我将其放在console.log中,{{user}}只会[Object object]在源代码中显示,但会出现错误“意外的标识符”。


问题答案:

输出时{{user}},把手将首先检索user.toString()值。对于plain Object,默认结果是"[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
});


 类似资料:
  • 好吧,所以我有下面的方法,但我试图摆脱使用。块(),因此尝试实现Mono,但得到错误< code >所需的类型:List 原始代码 我尝试以非阻塞方式重构使用 Mono

  • 问题内容: 我正在尝试解析包含一个城市的大型json文件(以下是文件中的前两个城市): 我想获取其“名称”值与字符串匹配的城市的ID: 但是,出现以下错误: 然后冒号后,它吐出了整个文件。 问题答案: 改成 因为它在顶层包含一个数组

  • Milo Yip 2016/11/15 本文是《从零开始的 JSON 库教程》的第六个单元解答篇。解答代码位于 json-tutorial/tutorial06_answer。 1. 重构 lept_parse_string() 这个「提取方法」重构练习很简单,只需要把原来调用 lept_set_string 的地方,改为写入参数变量。因此,原来的 lept_parse_string() 和 答案

  • 问题内容: 只是试图在视图中显示我通过ajax从控制器获取的数组,但它显示的是[object Object],[object Object]而不是array。请在下面检查我的js文件: 问题答案: 使用转换到。 试试这个: 我认为,这对您有帮助-

  • 问题内容: 我正在一个JavaScript项目上,只是想知道为什么对象实例不继承和其他方法,而不必调用超类(superobject?)方法。 我看过了MDN文档,实际上有“非标准”属性方法。 但这些已被弃用。为什么要转向方法? 在我看来,类似的东西比更好。对于其他一些Object方法,我也会说同样的话。 问题答案: 这是为了避免发生冲突-通常情况下,对象的问题不具有所需值的属性。 JS中的对象通常

  • 问题内容: 我无法理解如何使用Visual .NET将JSON字符串解析为c#对象。任务很简单,但是我仍然迷路…我得到了这个字符串: 这是我尝试进行消毒的代码: 我不知道在’<’和’>’之间放置什么,从网上阅读的内容中,我必须为其创建一个新的类。另外,如何获得输出?一个例子会有所帮助! 问题答案: 创建一个可以反序列化您的JSON的新类,例如: