Как использовать json в руле с помощью nodeJs expressJs - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть данные JSON в переменной dataList, и я хочу добавить их в качестве помощника пользовательских рулей в качестве параметра.

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: Неожиданный токен u в JSON в позиции 0

Принимая во внимание, что он работает со статическими данными

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

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

JSON.parse принимает строку, но вы передаете ему массив

0 голосов
/ 20 сентября 2018

Я почти уверен, что проблема не в собственном помощнике, а в том, как вы передаете ему данные.

Если вы используете экспресс, это будет похоже на res.render('view-name', data)

0 голосов
/ 17 сентября 2018

это потому, что ваш data возврат undefined подробности см. Здесь [ uncaught syntaxerror неожиданный токен U JSON ]

...