У меня есть данные 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.info(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}}
@RaghavGarg Qus. обновлено.
Спасибо за обновление, я почти уверен, что проблема не в пользовательском помощнике, а в том, как вы передаете ему данные. Пожалуйста, также покажите, откуда вы вызываете этот вид !! Если вы используете экспресс, это будет похоже на res.render('view-name', data).
Спасибо!! @RaghavGarg работает



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


это потому что ваш data возвращает undefined
подробнее см. здесь [uncaught syntaxerror неожиданный токен U JSON]
JSON dataList уже определен, но проблема все еще не решена.
Handlebar.registerHelper('List', function(data, options){ //console.info(data) //returns undefined return options.fn(JSON.parse(data)); }); в этом коде вы выполнили синтаксический анализ в json, но из-за неопределенных данных вы получили эту ошибку.
Хорошо!! Не могли бы вы объяснить мне, как определять dataList ?? в {{#List dataList}} {{> widgets / toDoList}} {{/ List}}
Вы когда-нибудь играли с рулем ???? вот руководство для этого (видео) [youtube.com/watch?v=4HuAnM6b2d8]
@JigneshSanghani, почему вы задали вопрос как ответ, который только что перефразировали? OP сказал нам, что это данные undefined и, следовательно, ошибка. Пожалуйста, помогите определить, почему идет undefined .. !!
JSON.parse принимает строку, но вы передаете ему массив
Я почти уверен, что проблема не в пользовательском помощнике, а в том, как вы передаете ему данные.
Если вы используете экспресс, это будет похоже на res.render('view-name', data)
When I have add full json code in {{#List full_json_code_here}} with single quotes then works perfectlyне могли бы вы объяснить это? или лучше добавить вариант использования в вопрос, когда он работает