2017-02-17 33 views
0

Я работаю с угловыми JS и JSP. Мне нужно получить переменную атрибута сеанса от JSP до моего контроллера. Мой код нижеДоступ к переменной JSP из javascript [Angular JS]

JSP

<html lang="en" ng-app="myApp"> 
<body> 
    <div data-ng-controller="myCtrl as vm" style="height:100%"> 
     <md-content layout="row" style="height:100%"> 
      <div class="widget"> 
       <h2>Header</h2> 
       <div ui-view></div> 
      </div> 
     </md-content> 
    </div> 
    <script type="text/javascript" src="/root/script/script.js"></script> 
    <% 
    String policy = session.getAttribute("POLICY_CHANGE"); 
    %> 
</body> 
</html> 

JS

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    // i want to get the JSP variable here 
}); 

ответ

0

Вы можете вывести переменную, используя язык выражений в качестве атрибута данных, например:

<div data-my-variable="${myVariable}" id="myDiv"></div> 

И если вы используют Jquery, вы можете использовать функцию атр:

var output = $("#myDiv").attr("data-my-variable"); 
0

Try (я никогда не пытался это - просто и идея ... пожалуйста, напишите, если он работает):

<script> 
angular.module('jspVariablesService', []) 
.value("valueName",${yourVariable}); 
</script> 

в <head></head> или в начале тела, а затем импортировать jspVariableService в

var app = angular.module('myApp', ["jspVariableService"]); 

и использовать его в контроллере:

app.controller('myCtrl', ["$scope", "valueName" function($scope,valueName) { 
    //use your value! 
}); 
0

Установить значение сеанса для скрытого ввода.

<div data-ng-controller="myCtrl as vm"> 
    <input type="hidden" id="sessionData" /> 
</div> 
<script> 
    var data = '<%=request.getSession().getAttribute("POLICY_CHANGE")%>'; 
    document.getElementById("sessionData").value = data; 
</script> 

и получить значение

app.controller('myCtrl', function($scope, $document) { 
    $scope.data = $document[0].getElementById("sessionData").value; 
    console.log($scope.data); 
});