如何在 nodeJs expressJs 的车把中使用 json

How to use json in handlebars with nodeJs expressJs

我在 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: Unexpected token u in JSON at position 0

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

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

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

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

我非常确定,这不是自定义助手的问题,而是您向其传递数据的方式。

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