如何在 Angular 2 中使用窗口对象? [复制]
Posted
技术标签:
【中文标题】如何在 Angular 2 中使用窗口对象? [复制]【英文标题】:How can I use a window object in Angular 2? [duplicate] 【发布时间】:2017-07-16 05:28:44 【问题描述】:我尝试将以下代码放入角度 2 中的窗口对象:
@Component(
selector: 'app-slider',
templateUrl: './slider.component.html',
styleUrls: ['./slider.component.css'],
providers: [
SliderService,
provide: "windowObject", useValue: window
]
)
export class SliderComponent implements OnInit
sliderList: Slider[] = [];
constructor( private _sliderservice:SliderService, @Inject("windowObject") private _window:window )
不幸的是,它不起作用。
【问题讨论】:
我不确定这是否应该被视为重复。 1)另一个问题专门关于角度服务,而这更广泛(包括例如角度组件)。 2) 另一个问题是具体如何注射,而有时可能不需要注射。如果这两点中的任何一个为真,那么这不是重复的,对吧? 【参考方案1】:您不需要提供者。 window
是一个全局对象,可以在你的类中直接访问
【讨论】:
使用全局 JS 对象中的 window 会使您的 Angular 应用程序变得脆弱,如果您想进行服务器端渲染,它将无法工作。 @LocalPCGuy 诚实的问题:如果您使用“可选链接”问号,它还会脆弱吗?例如,window?.navigator
@Marcus 不,这将防止 window
为空。或者您可以将使用 window
的代码包装在 if (window) ...
保护中。
除非未定义,是的,它是一个全局对象以上是关于如何在 Angular 2 中使用窗口对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CSS 更改 Angular-UI Bootstrap Datepicker 弹出窗口的样式?