在Angular Universal中,window对象不可用,因此无法使用window/.addEventListener。解决该问题的一种方法是使用renderer2对象的addEventListener方法来代替window对象中的addEventListener方法。下面是解决方法的示例代码:
import { Component, OnInit, OnDestroy, Renderer2 } from '@angular/core';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit, OnDestroy {
constructor(private renderer: Renderer2) { }
ngOnInit() {
this.renderer.listen('window', 'scroll', (event) => {
console.log(event);
});
}
ngOnDestroy() {
// remove the listener when the component is destroyed
this.renderer.destroy();
}
}
在上面的代码中,我们在ngOnInit()方法中使用Renderer2对象的listen方法来监听window对象上的滚动事件。我们还在ngOnDestroy()方法中使用Renderer2对象的destroy方法,以便在组件销毁时删除监听器。
下一篇:AngularUNIVERSALprerendererrorMethodPromise.prototype.thencalledonincompatiblereceiver[objectObject]