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