【问题标题】:How best to include tenant in Angular 2 Routing如何最好地将租户包含在 Angular 2 路由中
【发布时间】:2016-12-21 13:14:14
【问题描述】:

我对 Angular 2 还很陌生,对于我是否以正确的方式处理这个问题有点困惑。我正在编写一个多租户应用程序,我希望所有 url 都以租户 ID 开头。例如:https://example.org/tenant-1/product/listhttps://example.org/tenant-2/product/list。这似乎是一个非常简单且解决得很好的问题,但我很难找到实现此目标的推荐方法。

到目前为止,我已经创建了一个路由服务:

@Injectable()
export class RoutingService {
    public ClientId: string = null;

    constructor() {}

    getRoute(path: string): string {
        if (!this.ClientId) {
            // For deep-linking
            this.ClientId = window.location.pathname.split('/')[1];
        }

        return '/' + this.ClientId + path;
    }
}

向用户显示租户列表并选择一个。这会将ClientId 设置在RoutingService 上。

在每个组件中,我在构造函数中导入这个RoutingService,HTML 使用它来创建路由:

[routerLink]="[routingService.getRoute('/product/list')]

有更好的方法吗?

【问题讨论】:

标签: angular2-routing


【解决方案1】:

我和你的情况类似,由于组件封装/隔离,似乎从服务中提取它是目前的方法:

Angular 2: How to pass route parameters to subroute?

https://angular.io/docs/ts/latest/guide/router.html#!#route-parameters

我没有创建 RouteService 或 RouteParamService,而是将其烘焙到我的 AuthService 中,因为租户是身份验证的一部分。除了租户之外,在我的情况下,路由参数可以单独工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多