访问_this

时间:2017-07-18 08:05:30

标签: typescript vue.js tslint

我有一个打字稿文件......而且它的TSLint失败了。希望有人能回答这个问题。

所以对象看起来像这样:

export default class Container extends Vue {
    // methods
    doSomething() {
        console.log('something happened')
    }
    items: object[] = [
        {
            title: test,
            onclick: _this.doSomething();
        }
    ]
}

我尝试使用this代替_this,但this仅引用项目中的单个对象。然后我在Chrome开发工具中发现我可以使用_this来访问包含的类。但是,当我将此代码通过TSLint时,它会抱怨它找不到名称' _this'

我的项目使用tslint-config-airbnb

感谢。 约翰。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用thisbind吗?像

这样的东西
items: object[] = [
    {
        title: test,
        onclick: this.doSomething.bind(this);
    }
]

基本上我们告诉onclick处理程序不要将其上下文更改为单个对象,而是将其保留为容器上下文。