用"这个"得到错误转换为Typescript后

时间:2014-07-29 12:46:46

标签: javascript typescript this

我的代码看起来像这样,但现在我把它放到一个Typescript类中,它给了我一个错误,说“无法读取未定义的属性角色”。

    this.$http({
        method: 'POST',
        url: '/Token',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        data: 'grant_type=password&username=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password),
    })
        .success(function (data, status, headers, cfg) {
            data.roles.split(':').forEach(function (v) {
                this.data.role['is' + v] = true;
                v == 'Test'
        })

我是否必须使用Typescript以不同的方式编写我的函数代码?我在function中有两个success(),我可以将其替换为=>吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下,this表示运行此代码的类的实例。您绝对可以将函数转换为箭头函数(=>)并省略this。 代码看起来像这样:

this.$http({
    method: 'POST',
    url: '/Token',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
    },
    data: 'grant_type=password&username=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password),
})
.success((data, status, headers, cfg) => {
    data.roles
        .split(':')
        .forEach((v) => {
            data.role['is' + v] = true;
            v == 'Test'
        })
});