gpt4 book ai didi

typescript - Angular2/TypeScript - 变量未更改

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:24 25 4
gpt4 key购买 nike

看起来我的变量的 isInfinitiveScrollLoaderEnabled 值在到达页面底部时没有改变。如果我把它放在 ngOnInit 方法的开头,它就改变成功了。

有什么问题吗?

export class SomeClass {
private isInfinitiveScrollLoaderEnabled: boolean;

constructor() {
this.isInfinitiveScrollLoaderEnabled = false;
}

ngOnInit() {
window.onscroll = (event) => {
if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) {
console.log('Bottom of page');
this.isInfinitiveScrollLoaderEnabled = true;
}
};
}
}

最佳答案

Angular 提供了一种简单的方法来监听 windowdocument 上的事件:

@Component({
selector: 'some-class',
// alternative to @HostListener below
// host: {'(window:scroll)':'onScroll($event')},
...
})
export class SomeClass {
private isInfinitiveScrollLoaderEnabled: boolean;

constructor() {
this.isInfinitiveScrollLoaderEnabled = false;
}

@HostListener('window:scroll', ['$event'])
onScroll(event) {
if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) {
console.log('Bottom of page');
this.isInfinitiveScrollLoaderEnabled = true;
}
}
}

对于命令式方式,请参阅 Programmatically (un)register to event with Angular 2

关于typescript - Angular2/TypeScript - 变量未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com