Как не иметь дублирования между Grails UrlMapping и угловым роутером

Я работаю над приложением grails/angular, в котором угловой маршрутизатор настроен на использование истории HTML5. Но, чтобы использовать эту настройку, мы должны объявить маршрут в угловом маршрутизаторе И в Grail UrlMappings.

Например, угловой роутер:

angular.module('myModule',['ngRoute']).config(['$locationProvider', '$routeProvider', 
   function($locationProvider, $routeProvider) {
      $locationProvider.html5mode(true);
      $routeProvider.when('my/url', {})
                    .when('my/other/url', {}) 
   }
]);

И файл UrlMappings.groovy:

class UrlMappings {

    static mappings = {
        //Here, duplication from the angular router
        //My Single Page Angular Application is on view index 
        'my/url'(view:'/index')
        'my/other/url'(view:'/index')
    }
}

У кого-нибудь есть чистое решение, чтобы избежать дублирования между этими 2 файлами?

1 ответ

Решение

Приложения Grails предоставляют Spring bean с именем grailsUrlMappingsHolder это дает программный доступ к отображениям URL, определенным в приложении (и его плагинах). Этот компонент является экземпляром UrlMappingsHolder. Вы можете прочитать сопоставления URL из бобов getUrlMappings() метод и построить URL-адреса в вашем угловом маршрутизаторе из этого списка.

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