如何在Angular 2中获取页面主机名?

时间:2016-08-10 05:00:25

标签: angular2-routing

我需要在Angular 2中获取页面的子域,因为它与路径相关。我看到在多次破坏版本之后,Angular 2中的路由器服务仍然没有域的概念。同样,位置服务也不知道URL的主机部分。

2 个答案:

答案 0 :(得分:2)

目前没有建立当前主机的方式。

如果您不想直接使用window.location,可以注入它,即如果您只需要主机,则可以将以下内容添加到模块提供程序中:

{ provide: 'HOST', useValue: window.location.host }

然后你可以将它注入组件或服务中:

constructor(@Inject('HOST') private host: string) { }

您肯定可以提供整个window对象:

{ provide: Window, useValue: window }

然后注入它:

constructor(private window: Window) { }

<强>更新

第一个选项不适用于AOT版本,您应该使用工厂:

export function hostFactory() { return window.location.host; }

然后提供者:

{ provide: 'HOSTNAME', useFactory: hostFactory }

答案 1 :(得分:1)

我刚才使用了这个主机名: window.location.hostname