ES6中$ http回调的范围

时间:2016-01-06 04:59:43

标签: angularjs ecmascript-6 es6-promise angularjs-http

我正在尝试编写一个使用ES6和Angular来调用API的快速测试 - 但我无法弄清楚如何将注入的值调整到回调中 - 在所有情况下它们似乎都是完全隔离的。有什么建议??

class Test {

constructor($state) {
    this.$state = $state;
}

doThing() {
    var request = this.$http({
        method: "get",
        url: "https://blah,
        params: {
            action: "get"
        }
    });
    return ( request.then(this.handleSuccess, this.handleError) );
}

handleSuccess(response) {
    update $state...
    this.$state is undefined
    this is undefined
}

handleError(response) {
    update $state...
}
}

Test.$inject = ['$state'];

1 个答案:

答案 0 :(得分:0)

来自Felix的优秀链接让我到达了我需要的地方 - 并非百分之百地确信这是最好的方式,但它至少是相当干净的。 HandleSuccess& HandleError也被更改为接受可选范围。

    return ( request.then((response)=> {
        this.handleSuccess(response, this)
    }).catch((response)=> {
        this.handleError(response, this)
    }));