2017-01-04 2 views
0

Я использую express js 4.1 вместе с шаблоном рулей 4.0. При рендеринге страницы я отправляю коллекцию объектов из express route.get ('/') в файл просмотра handlebar (.hbs). Есть ли возможность отправить объект, например viewbag (аналогичный MVC), и получить доступ к этим объектам с помощью @viewbag в файле hbs? Ниже код используется для визуализации ОБД файл вместе с коллекцией 2 объектовКак использовать концепцию MVC viewBag в express js?

var gridData = [ 
      { Name: 'xxxx', City: 'dddd' }, 
      { Name: 'yyyy', City: 'rrrr' }, 
      { Name: 'zzzz', City: 'ssss' } 
    ] 
resultSet["gridData"] = gridData; 
resultSet["newdata"] = [1,2,3]; 
res.render('user-list', {viewBag: resultSet}); 

Здесь мне нужно использовать viewBag, как @ viewBag.gridData или @ viewBag.newdata в HBS, чтобы связать эти значения массива. Кроме того, пожалуйста, предложите использовать хед-файлы @HTML и @section ControlsSection {} в файле hbs, поскольку выражение js следует структуре MVC.

+0

Изменить эту строку на 'res.render ('user-list', {viewBag: resultSet})' – Aruna

+0

Yup .. это нормально .. Мой вопрос заключается в том, как использовать HTML-помощники и @viewBag в hanblebars. –

+0

Вы не можете использовать библиотеки DotNet в NodeJS. Вы должны найти альтернативные пакеты npm или лучше написать свои собственные. – Aruna

ответ

1

Вместо res.render('user-list', {viewBag: gridData}); я заменил

res.locals.gridData = JSON.stringify(gridData); // To make it global and accessible in hbs view file 
res.locals.newdata = newdata; 
res.render('user-list'); 

При оказании «пользователь-лист» страница, dataSource: {{{gridData}}} будет связывать соответствующий источник данных в для сетки, и это datasource имеет тип JSon. Это работает наконец !!!

Смежные вопросы