【问题标题】:How to use json in handlebars with nodeJs expressJs如何在带有 nodeJs expressJs 的车把中使用 json
【发布时间】:2019-02-21 07:56:01
【问题描述】:

我在 dataList 变量中有一个 JSON 数据,我想将它作为参数添加到自定义车把助手中。

var dataList = [
  {
    "id": 1,
    "title": "Arrange meeting",
    "date": "Today 10:35 | By Admin",
    "completed": true
  },
];

车把自定义助手

var Handlebar = require('handlebars');
Handlebar.registerHelper('List', function(data, options){
  //console.log(data) //returns undefined 
  return options.fn(JSON.parse(data)); // gives error
});

自定义助手渲染:

{{#List dataList}} 
  {{> widgets/toDoList}}
{{/List}}

产生错误

SyntaxError: 位置 0 处 JSON 中的意外标记 u

然而,它正在处理静态数据

{{#List '[
  {
    "id": 1,
    "title": "Arrange meeting",
    "date": "Today 10:35 | By Admin",
    "completed": true
  },
]' }} 
  {{> widgets/toDoList}}
{{/List}}

【问题讨论】:

  • When I have add full json code in {{#List full_json_code_here}} with single quotes then works perfectly 你能解释一下吗?或者更好地在问题中添加用例,当它工作时
  • @RaghavGarg Qus。已更新。
  • 感谢更新,我很确定,这不是自定义助手的问题,而是您将数据传递给它的方式。还请显示您在哪里调用此视图。!!如果您使用的是 express,则类似于 res.render('view-name', data)
  • 谢谢!! @RaghavGarg 它有效

标签: javascript json node.js express handlebars.js


【解决方案1】:

我很确定,这不是自定义助手的问题,而是您将数据传递给它的方式。

如果你使用的是快递,那就是res.render('view-name', data)

【讨论】:

    【解决方案2】:

    这是因为你的 data 返回 undefined 在此处查看更多信息 [uncaught syntaxerror unexpected token U JSON]

    【讨论】:

    • JSON dataList 已定义但仍未得到实际问题。
    • Handlebar.registerHelper('List', function(data, options){ //console.log(data) //returns undefined return options.fn(JSON.parse(data)); }); 在此代码中,您已完成对 json 的解析,但由于未定义的数据,您收到此错误。
    • 好的!!那么你能解释一下如何定义dataList吗?在 {{#List dataList }} {{> 小部件/toDoList}} {{/List}}
    • 你玩过车把吗???这里的教程(视频)[youtube.com/watch?v=4HuAnM6b2d8]
    • @JigneshSanghani ,你为什么把这个问题作为刚刚重新构建的答案? OP 告诉我们数据是undefined,因此是错误的。请帮助确定为什么会出现undefined..!!
    【解决方案3】:

    JSON.parse 接受一个字符串,但你传递给他一个数组

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2018-03-04
      • 2014-12-19
      • 1970-01-01
      • 2016-07-31
      相关资源
      最近更新 更多