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,

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

Другие вопросы по тегам