Таким способом вы можете получить доступ к объекту окна в Angular. Во-первых, мы должны создать сервис. Поскольку наше приложение Angular предназначено не только для работы в вашем браузере, но и на мобильных платформах, сервер или веб-работники, на которых такие объекты, как окно, могут быть недоступны.
Поэтому предлагаемый подход состоит в том, чтобы обернуть такие объекты и внедрить их через механизм внедрения зависимостей.
import { Injectable } from '@angular/core';
function _window() : any {
// return the global native browser window object
return window;
}
@Injectable({
providedIn: root
})
export class WindowRef {
get nativeWindow() : any {
return _window();
}
}
И мы можем просто вызвать это в нашем компоненте так:
import { WindowRef } from './WindowRef';
@Component({...})
class MyComponent {
constructor(private winRef: WindowRef) {
// getting the native window obj
console.log('Native window obj', winRef.nativeWindow);
}
}
Теперь создайте функцию, которая обрабатывает действие newtab