在我的AngularJS服务中,我尝试在$ http成功块中的同一文件中调用方法,我必须使用' that = this'所以我可以正确访问它。
calc_total: (line) ->
that = this
$http.get("/item/get_cost?costing_id=" + line.costing_id).then (
(response) ->
# If successful set the cost per unit cents
line.cost_cents = response.data['cost_cents']
that.accumulated_balance(line) # Update balance
)
这样做的正确方法是什么?
答案 0 :(得分:1)
您可以使用胖箭=>
来保留this
关闭中的calc_total
:
calc_total: (line) ->
$http.get("/item/get_cost?costing_id=" + line.costing_id).then (
(response) =>
# If successful set the cost per unit cents
line.cost_cents = response.data['cost_cents']
this.accumulated_balance(line) # Update balance
)
请参阅this guide以供参考。
JavaScript ES5等效项
function () {}.bind(this);
胖箭头语法也进入了ES6。