我需要在 Angular 2 中获取页面的子域,因为它与路由相关。我看到在多次中断发布后,Angular 2 中的路由器服务仍然没有域的概念。同样,Location 服务不知道 URL 的主机部分。
没有获取当前主机的内置方式。
如果你不想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 }
| 归档时间: | 
 | 
| 查看次数: | 10180 次 | 
| 最近记录: |