Получение данных из Spring MVC в Angular JS при вызове начального вида

Я новичок в Angular JS, я создал веб-приложение Spring MVC с Angular JS, я знаю, что из представления мы можем вызывать службы REST из Angular JS, используя ресурс, restangular, http, но, скажем, в Spring form контроллер был запущен вид и для загрузки данных через angular в представлении снова вызов REST из angular вызывается из вида на сервер и получает данные после загрузки, вместо этого есть ли способ передать объект json при запуске вид от пружинного контроллера до углового JS в первый раз сам по себе.

enter image description here

Я сделал аналогичную вещь, ее работа в порядке, но не знаю, хороший ли это подход или нет.

Весна контроллер

@RequestMapping("/getemployee")
public ModelAndView helloWord(){
   JSONArray employeeJsonArray = // contains all the information of the employee
   return new ModelAndView("employee", "employee",employeeJsonArray);
}

сотрудник.jsp

<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring 3.0 MVC Series: Hello World</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('MyCtrl', function($scope) {
    $scope.employee = [];
    $scope.loadData = function(employee)
    {
        $scope.employee = JSON.parse(employee);
    };
});
</script>
</head>
<body ng-controller="MyCtrl">
{{loadData('${employee}')}}

 <input type="text" ng-value="employee[0].name"/>
</body>
</html>

3 ответов


Angular действительно сияет, когда вы используете его в "одном" приложении страницы, поэтому я бы предложил использовать его, как вы предложили в своем "существующем подходе", поскольку он приближает вас к дизайну одностраничного приложения, однако, если вы просто пытаетесь получить некоторые функции Angular в существующем приложении запроса/ответа, то вы можете отправить свою полезную нагрузку html с данными в ng-init как это страница демонстрирует. Это пример RoR, но я думаю, что суть ясна. Я думаю, что это немного хак, но должен сделать свою работу.

   <body ng-init="angularVariable = ${variableFromServer}">
     html/angular ...
   </body>

недавно я переключился на использование angular, красота в том, что вы можете полностью отказаться от jsp и просто иметь статический html в качестве интерфейса. Служил статическим ресурсом к весне.

чтобы изначально заполнить форму / таблицы / что угодно - множество различных опций делают это в javascript/angular. Но приятно держать ваш взгляд отдельно от ваших контроллеров (т. е. не использовать jsp).


вы можете использовать ниже код для входа пользователя,

<input type="text" ng-model ="currentLoging" ng-init= "currentLoging='${pageContext.request.userPrincipal.name}'" />