AngularJS: Как загрузить частичное представление со стороны сервера?
Я работаю над сборкой веб-приложений на основе Java на Spring MVC. Сейчас в этом приложении я пытаюсь интегрировать платформу AngularJS, чтобы получить модульный код на стороне клиента, а также отделить модальный и внешний вид моего клиентского сайта.
В SpringMVC, когда мы возвращаем ModelAndView из наших контроллеров, здесь я пытаюсь использовать это возвращенное представление с модулем маршрутизатора AngularJS.
var hmAdministration = angular.module('administration', ['ngRoute']);
hmAdministration.config(function ($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when("AngularJSSpringMVC/displayRoleList", {templateUrl: "AngularJSSpringMVC/displayRoleList"});
});
Теперь здесь AngularJSSpringMVC / displayRoleList - это URL-адрес, связанный с API контроллера, который возвращает ModalAndView. Теперь, насколько я понимаю, мнение, которое возвращается сюда, должно быть размещено на моем <ng-view></ng-view>
тег. Когда я запускаю этот код на стороне клиента, он работает, но сейчас, пытаясь интегрировать этот код с SpringMVC, кажется, что все еще нужно соединить множество точек.
1 ответ
Прежде всего, AngularJS всегда работает complete client side
,
Вы не указали свои ошибки, поэтому я предполагаю здесь, основываясь на моем собственном опыте интеграции Angular с MVC Views.
Обратите внимание, что адрес в вашем браузере должен выглядеть следующим образом:http://yourserveraddress/#/AngularJSSpringMVC/displayRoleList
#
важно, вот что отличает Angular-маршрутизацию от MVC-маршрутизации (выполняется на сервере). Приведенный выше адрес загрузит вашу индексную страницу, и в ней должен быть ваш угловой код, который обработает маршрут после #
и заставить все это работать.
Вы правы, когда ожидаете, что содержимое вашего представления MVC должно быть загружено на ваш ng-view
,
Было бы предложено использовать достаточно разные маршруты под углом, чтобы их нельзя было легко перепутать, может быть, что-то вроде этого упростит:
$routeProvider.
when("displayRoleList", {
templateUrl: "AngularJSSpringMVC/displayRoleList"
});
Так что ваш URL будет http://yourserveraddress/#/displayRoleList
,
Я надеюсь, что это может быть полезным, если я плохо пропустил отметку, пожалуйста, поделитесь еще кодом.