我正在设计一个多租户应用程序,其中租户由网址主机定义(例如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"
});
答案 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" });
}