2016-02-13 64 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 

这样一来,你就必须管理和客户端应用程序