主机为多租户客户端应用程序改变角度路由

时间:2015-12-01 08:30:41

标签: angularjs multi-tenant

我正在设计一个多租户应用程序,其中租户由网址主机定义(例如tenant1.myapp.com,tenant2.myapp.com等)。

我可以通过主机名改变我的角度路线吗? 例如,典型的路线是:

$routeProvider.when("/home", {
    controller: "homeController",
    templateUrl: "/app/views/index.html"
});

我如何通过主机名改变这一点,例如:

$routeProvider.when("/login", {
    controller: "homeController",
    templateUrl: "/app/views/{host}/index.html"
});

1 个答案:

答案 0 :(得分:0)

嗯......这不是一种角度的做事方式。在定义路由的阶段,您无权访问$location服务。您只能访问$locationProvider,后来被$location使用(请参阅https://docs.angularjs.org/guide/ $ location)

但我猜你也许可以通过访问全局窗口范围并读取绝对URL来实现。然后,您将根据此绝对网址以不同方式定义您的路线。

像这样的东西

var url = window.location.href;
if (url.indexOf('/tenant1/')) {
 $routeProvider.when("/sport/:id", { templateUrl: "sport-detail.html", controller: "SportDetailCtrl" });
} else {
 $routeProvider.when("/sport/modification/:id", { templateUrl: "sport-detail.html", controller: "SportDetailCtrl" });
}