滚动事件后的行为

时间:2016-06-04 21:01:31

标签: typescript angular

使用Angular2时遇到问题。如果我在Angular2中没有弄错,我应该将我的代码放在类中而不是this的控制器和访问变量中,但是我想要从分配给window.onscroll的函数访问我的代码,{此函数内的{1}}无效,因为它返回this

如何在滚动事件上访问我的变量或函数?

window

1 个答案:

答案 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
};