2015-05-02 145 views
0

我试图在同一个NodeJS服务器上放置2个(或更多)角度的应用程序。基本上我想要的是:同一台服务器上的多个AngularJS应用程序

  • mydomain.com/clientapp - 最终用户的应用程序,例如:买方
  • mydomain.com/userapp - 这将创造内容的用户。例如:他的产品
  • mydomain.com/admin卖家 - 可以批准和删除的东西

我使用的UI路由器($ stateProvider)创建的路线和加载页面的团队。问题是我想能够在我的应用程序上编写相对路径,所以如果我需要将基础url从clientapp重命名为客户端,我不需要更改所有的应用程序url。

// this should be routed to admin/clients. Relative path 
state('listClients', { 
     url: '/clients', 
     templateUrl: 'modules/clientes/views/list-clients.client.view.html' 
    }). 

// this is how I am currently doing. 
state('listClients', { 
     url: '/admin/clients', 
     templateUrl: 'modules/clientes/views/list-clients.client.view.html' 
    }). 

正在发生的其他奇怪的事情是,当我把我的角度应用到一个URL,它杀死最后一个/,并添加#!直接在应用程序名称:

mydomain.com/app 
becomes mydomain.com/app#!/main // ugly as hell 
wanted mydomain.com/app/#!/main // little better 

如何我:

  • 正确设置AngularJS和UI路由使用基本路径,其所有的请求?
  • 解决丑陋的url问题?
+1

您有问题吗? – tpie

+0

yeap。编辑了这个问题。 –

+1

你在html头部有一个base href =元素吗? – Cerad

回答

0

1.You可以尝试ui.router.stateHelper

angular.module('admin', ['ui.router', 'ui.router.stateHelper']) 
    .config(function(stateHelperProvider){ 
    stateHelperProvider.setNestedState({ 
     name: 'admin', 
     url: '/admin', 
     templateUrl: 'admin.html', 
     children: [ 
     { 
      name: 'listClients', 
      url: '/clients', 
      templateUrl: 'clients.html' 
     } 
     ] 
    }); 
    }); 

一旦你想改变模块clientapp你只需要改变模块的名称和URL

angular.module('clientapp', ['ui.router', 'ui.router.stateHelper']) 
    .config(function(stateHelperProvider){ 
    stateHelperProvider.setNestedState({ 
     name: 'clientapp', 
     url: '/clientapp', 
     templateUrl: 'clientapp.html', 
     children: [ 
     { 
      name: 'listClients', 
      url: '/clients', 
      templateUrl: 'clients.html' 
     } 
     ] 
    }); 
    }); 

对于这个丑陋的问题,我不知道这个问题。

+0

有一些副作用似乎是一个很好的解决方案。将检查! –

+0

你可以尝试'angular.js'的'$ locationProvider'来解决难题。 –

1

第一个应用程序文件夹

app.use('/', express.static(path.join(__dirname + '/app1'))); 

第二应用文件夹

app.use('/crm', express.static(path.join(__dirname + '/app1/app2'))); 

完成!享受

相关问题