2016-02-13 46 views
0

我做了兩個不同的角度應用程序(一個用於客戶端,一個用於管理員)我在express服務器apis之上構建客戶端應用程序,該應用程序向我提供mongodb的結果,並且我希望同時訪問這些apis所以我想出的解決方案是將管理應用程序放在客戶端項目的子文件夾下,它們都工作正常,但因爲客戶端應用程序中的$urlRouterProvider.otherwise('/');。當我在管理應用程序內部刷新瀏覽器時,它會將我轉發回客戶端根文件夾。ui路由器狀態轉發到子文件夾

我的問題如何使ui-routerstate轉發到沒有模板和控制器的子文件夾。

我覺得還有比這請指點一個更好的解決方案,

Client => http://localhost:9000/ 
Admin => http://localhost:9000/admin/rtl 

回答

1

我認爲你正在尋找一個反向代理服務器之間是完全不同的狀態這會將傳入的請求路由到正確的服務器。 NGINX很常見:https://www.nginx.com/resources/admin-guide/reverse-proxy/

你可以在父模塊中運行'apps'。

angular.module('clientModule',[]); 
angular.module('adminModule',[]); 
angular.module('mainApp', ['clientModule', 'adminModule']); 

如果您已經定義了路由器:

$stateProvider 
    .state('client', {url:"/client"} 
    .state('admin', {url: "/admin"} 

刷新頁面應正確指引你。

如果在兩者之間移動,深度狀態重定向可能會有所幫助:http://christopherthielen.github.io/ui-router-extras/#/dsr

0

你能考慮改變你的文件夾結構?

較容易的方法是將具有以下結構:

/ => redirect to /appName 
/appName => your client app 
/admin => your admin app 
/sdk => common stuff 

這樣一來,你就必須管理和客戶端應用程序