#angular #angular-universal #server-side-rendering
#angular #angular-универсальный #рендеринг на стороне сервера
Вопрос:
Я реализовал рендеринг на стороне сервера с помощью Angular Universal. У меня есть метод, который я хочу запустить, когда DOM становится интерактивным и становятся доступными такие API браузера, как window.navigator
(потому что я хочу что-то сделать с пользовательским языком).
Существует ли привязка жизненного цикла или какой-либо другой способ прослушивания, когда я могу использовать window.navigator
?
Ответ №1:
Я протестировал локальную работу своего сервера узлов и обнаружил, что это ngOnInit()
подходящее место для запуска кода navigator. ngOnInit()
вызовется на стороне сервера, но будет вызван снова в браузере, поэтому вам нужны проверки достоверности в navigator:
ngOnInit() {
if (this.window amp;amp; this.window.navigator) {
// do stuff
}
}
Стоит отметить, что я использую поставщика окон для доступа к window —
constructor(@Inject(WINDOW) private window: any) { }