Spring MVCアプリケーションのコントローラで作成されたJavaオブジェクトを、Handlebarsヘルパーメソッドを介してクライアント側に渡すことができるかどうかは疑問です。例えばJavaオブジェクトをHandlebars.jsヘルパーに渡します。
、コントローラに私はマップを作成し、私の意見にそれを渡す場合:
public ModelAndView myController(HttpServletRequest req) {
ModelAndView mav = new ModelAndView("/views/myview.jsp");
Map<Long, String> map = new HashMap<>();
map.put(1L, "a");
map.put(2L, "b");
mav.addObject("MyMap", map);
return mav;
}
...と私の見解では、このようなものであること。そして、
<html>
<head>
</head>
<body>
<!-- I want to pass my map to this helper function -->
<div id="mymap">{{buildStringFromMap "MyMap"}}</div>
</body>
</html>
そして持っていますJavascriptの実際のHandlebarsヘルパーは、次のようにそのマップで何かを行います:
Handlebars.registerHelper('buildStringFromMap', function (myMap) {
var a = myMap[1L]; // a == "a" here
// do whatever with the map
});
明らかにth実際に私のMapオブジェクトを渡すのではなく、文字列 "MyMap"を渡したので動作しません。実際のMapオブジェクトを渡す方法はありますか?
マップオブジェクトをビューでjavascriptマップに変換し、ハンドルバーヘルパーに渡します。 –