2014-10-29 111 views
1

我正在將我的應用程序重構爲AngularJS。

在我當前的JSP頁面上有Java代碼直接發送到頁面(不是通過AJAX)。我通常通過$ {myColl}引用它,它工作的很好。

現在用AngularJS,我試圖直接進入我的控制器通過:

.controller("MyCtrl", function($scope, MyService) 
{ 
    $scope.myColl = ${myColl}; 
}) 

...但它不工作。不用重寫我的後端以通過AJAX獲取數據,我怎樣才能將這些數據存入我的控制器?

任何提示,非常感謝。

謝謝。

+0

你就不能。你需要一個api調用,因爲它運行客戶端,而不像你的jsp – 2014-10-29 20:47:04

+0

@Apero - 不,你不需要 - 你可以在頁面加載時在服務器信息中寫入客戶端,就像OP詢問的那樣。 – tymeJV 2014-10-29 20:47:45

+0

對於這個html頁面也必須是一個服務器端模板,由一個運行在同一服務器上的jsp生成,然後 – 2014-10-29 20:49:56

回答

2

我通常使用ng-init函數在加載時將服務器數據寫入客戶端。例如:

<div ng-controller="MyCtrl" ng-init="init('${myColl}')"> 

</div> 

而且控制器

.controller("MyCtrl", function($scope, MyService) { 
    $scope.init = function(col) { 
     $scope.myColl = col; 
    } 
}); 
+0

這看起來不錯,謝謝。一個簡單的問題是:我只得到col對象的全限定路徑,即com.company.path.ClassName而不是對象本身。我現在試圖做到這一點:ng-init =「init('')」但仍然得到同樣的結果。 – fumeng 2014-10-30 14:36:33

+0

不知道該怎麼做.. ..我的駕駛室裏有:\ – tymeJV 2014-10-30 14:40:33

+0

Np;非常感謝你的幫助。 – fumeng 2014-10-30 14:54:57

相關問題