2013-04-01 125 views
2

我的應用程序使用SpringMVC和Apache速度。現在我要將Angularjs控制器添加到* .vm文件(速度文件)。我在訪問由Spring控制器返回的ModelAndView對象中設置的對象時發現問題。如何將Spring ModelAndView對象屬性注入到Angular模塊中?

有人可以給我一個關於如何做同樣的簡單例子嗎?

例子: Controller.java

ModelAndView mav = ControllerUtil.createModelView(); 
String dataSource = Constant.DATA_SOURCE; 
HttpSession session = (HttpSession) mav.getModel().get("httpSession"); 
**mav.addObject("dataSource", dataSource);** 

請就如何讓AngularJS模塊內部的 '數據源' 值的例子。

由於事先 DBKnot隊

+0

我不知道很多用SpringMVC左右,但這個話題相關的? http://stackoverflow.com/questions/13769732/angular-js-init-ng-model-from-default-values – koolunix

回答

2

我不熟悉的速度,但我太想找到一種方法來完成你彷彿是試圖做。

我目前正在探索(測試它)這種方法。使用Jackson將您的對象解析爲字符串。這可以通過控制器或通過自定義標籤在JSP中完成。

例子:

ObjectMapper jsonMapper = new ObjectMapper(); 
    String result = null; 
    try { 
     result = jsonMapper.writeValueAsString(obj); 
    } catch (Exception e) { 
     // Handle it 
    } 
    **mav.addObject("dataSource", result);** 

在HTML/JSP /不管有什麼樣

<div ng-controller="MyCtrl" ng-init="init(${dataSource})">...</div> 

,有你的控制器的init方法處理其餘部分。

注意

與往常一樣,你應該閱讀文檔,並AngularJS建議,該模型應該通過AJAX請求,從DOM(這是在這裏發生的事情)沒有獲得被初始化。

我很想看到替代這個

+0

一個重要的事情要注意,這個策略是非常脆弱的。如果你的dataSource裏有引號/雙引號,你可能會遇到麻煩 – Hartimer

相關問題