Когда вы добавляете angular universal в ваше приложение window
, document
, navigator
и другие типы браузеров - не существует на сервере - поэтому их используют или любая библиотека, которая их использует (например, jQuery) не будет работать.
Если вам нужно их использовать, подумайте об ограничении их только вашим клиентом и оборачивании их ситуативно. Вы можете использовать объект, введенный с помощью токена PLATFORM_ID, чтобы проверить, является ли текущая платформа браузером или сервером.
в моем проекте у меня есть следующий код внутри компонента ts file
, и он работает
import { WINDOW } from '@ng-toolkit/universal';
import { Component, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'app';
constructor(@Inject(WINDOW) public window: Window,
@Inject(PLATFORM_ID) private platformId: Object) {
}
onActivate(event) {
if (isPlatformBrowser(this.platformId)) {
this.window.scroll(0, 0); // window object used which is Instance of Window
}
}
}