2014-01-30 27 views
1

我正在研究grails/angular應用程序,其中角度路由器設置爲使用HTML5歷史記錄。但是,要使用此設置,我們必須在角路由器中和在grails UrlMappings中聲明路由。如何在grails UrlMapping和angular路由器之間不重複路由器

例如,角路由器:

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個文件之間的重複?

回答

2

Grails應用程序提供了一個名爲grailsUrlMappingsHolder的Spring bean,它提供了對應用程序(及其插件)中定義的URL映射的編程訪問。這個bean是UrlMappingsHolder的一個實例。您可以從Bean的getUrlMappings()方法中讀取URL映射,並從此列表中構建角路由器中的URL。

+0

感謝您的回答,這不是完美的(大量的膠水代碼來寫這個工作,因爲我想),但它會暫時做 – Molochdaa

+0

@Donal可以給你一個代碼的例子嗎? – Merlin

相關問題