麻烦绑定'this'Angular / Javascript

时间:2019-05-15 03:59:54

标签: javascript angular

基本上,我正在尝试在Angular应用程序中使用此软件包pullToRefresh

代码如下

const ptr = pullToRefresh.init({
                mainElement: '.dashboard-container',
                onRefresh() {
                    console.log('pulled');
                    // this._service.action();
                }
            });

由于this现在引用了this回调函数,因此显然onRefresh()无法正常工作。所以我的问题是如何正确绑定this以便在该回调函数onRefresh

中正确使用它

现在我试图将回调更改为箭头函数,如

onRefresh = () => {...

但是我的tslint说'=' can only be used in an object literal property inside a destructuring assignment.

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

为此,您可以将this绑定到回调函数。

pullToRefresh.init({
  mainElement: '.dashboard-container',
  onRefresh() {
    console.log('pulled');
    // this._service.action();
  }.bind(this)
})

或者,您可以尝试以下操作:

const that = this;
const ptr = pullToRefresh.init({
  mainElement: '.dashboard-container',
  onRefresh() {
    console.log('pulled');
    that.service.action();
  }
});

答案 1 :(得分:1)

您可以尝试使用箭头函数,这样onRefresh不会创建它自己的作用域,如下所示:

const ptr = pullToRefresh.init({
    mainElement: '.dashboard-container',
    onRefresh: () => {
        console.log('pulled');
        // this._service.action();
    }
});

详细了解箭头功能here