Angular 通用:window api 可用时的生命周期挂钩

Angular Universal: lifecycle hook for when window api becomes available

我已经使用 Angular Universal 实现了服务器端渲染。我有一个方法,当 DOM 是交互式的并且像 window.navigator 这样的浏览器 api 可用时(因为我想对用户的语言环境做一些事情)。

是否有生命周期挂钩或其他方式来监听我何时可以使用 window.navigator

我在本地测试了 运行ning 我的节点服务器,发现 ngOnInit() 是 运行 导航器代码的合适位置。 ngOnInit() 将在服务器端调用,但会在浏览器中再次调用,因此您需要对导航器进行真实检查:

ngOnInit() {
  if (this.window && this.window.navigator) {
    // do stuff
  }
}

值得注意的是,我正在使用 window provider 访问 window -

constructor(@Inject(WINDOW) private window: any) { }