Angular Universal:Windows API何时可用的生命周期挂钩

时间:2019-03-05 16:42:59

标签: angular angular-universal ssr

我已经使用Angular Universal实现了服务器端渲染。我有一种方法,当DOM是交互式的,并且window.navigator之类的浏览器API可用时,我将触发该方法(因为我想对用户的语言环境进行处理)。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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