在渲染器内部使用“this”作为未定义。我怎么能在函数内传递这个?还是有其他方法来观看滚动并实现相同的目标吗?
ngAfterContentInit() {
this.Scroll();
}
constructor(el: ElementRef, renderer: Renderer) {
this.el = el;
this.renderer = renderer;
}
Scroll():void{
this.renderer.listen(this.e[0], 'scroll', (event: any, ):void => {
//want to call Directives function here
//ex: this.someFunc()
},true);
}
i event尝试了JavaScript方法
this.e[0].addEventListener('scroll', function (e: any) {
//ex: this.someFunc()
});
答案 0 :(得分:0)
此关键字在事件函数定义中不起作用,因为它不在此函数的范围内。为了使其有效,您可以保存这个'函数变量中的作用域,并在事件函数定义中使用它。
Scroll():void{
var self = this;
this.renderer.listen(this.e[0], 'scroll', (event: any, ):void => {
//use self instead of this
//ex: self.someFunc()
},true);
}
希望这有帮助。