AngularJS访问'这个'在$ http内

时间:2015-07-07 02:55:00

标签: angularjs coffeescript

在我的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
  )

这样做的正确方法是什么?

1 个答案:

答案 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。