我正在尝试编写一个使用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'];
答案 0 :(得分:0)
来自Felix的优秀链接让我到达了我需要的地方 - 并非百分之百地确信这是最好的方式,但它至少是相当干净的。 HandleSuccess& HandleError也被更改为接受可选范围。
return ( request.then((response)=> {
this.handleSuccess(response, this)
}).catch((response)=> {
this.handleError(response, this)
}));