2017-01-04 1 views
0

Ich benutze Express js 4.1 zusammen mit Lenker Vorlage 4.0. Beim Rendern einer Seite sende ich eine Sammlung von Objekten von express route.get ('/') an die Lenkstange (.hbs) View-Datei. Gibt es eine Möglichkeit, das Objekt wie viewbag (ähnlich MVC) zu senden und sollte diese Objekte mit @viewbag in hbs-Datei zugreifen? Im Folgenden Code verwendet wird, die hbs mit Sammlung von 2 ObjekteWie MVC ViewBag-Konzept in Express-Js verwenden?

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}); 

Hier muss ich die viewBag als @ viewBag.gridData oder @ viewBag.newdata in hbs diese Array-Werte zu binden, verwenden Datei zusammen zu machen. Bitte schlagen Sie auch vor, wie Sie @HTML-Helfer und @section ControlsSection {} in der hbs-Datei verwenden, da die Express-js der MVC-Struktur folgt.

+0

Ändern Sie diese Zeile in 'res.render ('user-list', {viewBag: resultSet})' – Aruna

+0

Yup .. das ist in Ordnung .. Meine eigentliche Frage ist, wie HTML-Helfer und @viewBag in hanblebars verwenden. –

+0

Sie können DotNet-Bibliotheken in NodeJS nicht verwenden. Sie sollten die alternativen npm-Pakete finden oder besser Ihre eigenen schreiben. – Aruna

Antwort

1

Statt res.render('user-list', {viewBag: gridData}); habe ich

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

Beim Rendern ‚user-list‘ Seite, dataSource: {{{gridData}}} wird die jeweilige Datenquelle binden, für das Gitter und die datasource ist von json Typ. Es funktioniert endlich !!!