使用Angular2时遇到问题。如果我在Angular2中没有弄错,我应该将我的代码放在类中而不是this
的控制器和访问变量中,但是我想要从分配给window.onscroll
的函数访问我的代码,{此函数内的{1}}无效,因为它返回this
。
如何在滚动事件上访问我的变量或函数?
window
答案 0 :(得分:3)
我看到了几种方法:
1)使用 HostListener :
@HostListener('window:scroll') onScroll() {
console.log(this.someVariable);
}
2)使用箭头功能:
window.onscroll = _ => {
console.log(this.someVariable);
};
3)使用 Function.prototype.bind():
window.onscroll = function() {
console.log(this.someVariable);
}.bind(this);
4)将上下文保存在变量中,如 self 或 :
let self = this;
window.onscroll = function() {
console.log(self.someVariable); // <== notice self instead of this
};