0

ハンドルバー テンプレート 4.0 と共に Express js 4.1 を使用しています。ページをレンダリングするとき、オブジェクトのコレクションを Express route.get('/') から handlebar(.hbs) ビュー ファイルに送信しています。viewbag (MVC に類似) のようなオブジェクトを送信する可能性はありますか? hbs ファイルで @viewbag を使用してこれらのオブジェクトにアクセスする必要がありますか? 以下のコードは、2 つのオブジェクトのコレクションと共に hbs ファイルをレンダリングするために使用されます。

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 で使用して、これらの配列値をバインドする必要があります。また、express js は MVC 構造に従っているため、hbs ファイルで @HTML ヘルパーと @section ControlsSection{} を使用する方法を提案してください。

4

1 に答える 1

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

'user-list' ページをレンダリングするときdataSource: {{{gridData}}}、それぞれのデータソースをグリッドにバインドします。これdatasourceは json タイプです。それは最終的に動作します!!!

于 2017-01-04T13:09:47.477 に答える