Angular coffeescript 中的控制器

Angular controller in coffeescript

我正在尝试在我的 CoffeeScript 文件中定义一个 angular 控制器。

angular.module("myApp").controller('DashboardReportsController', ['$http', ($http) ->
  dctrl = @
  dctrl.setupDashboard = (id)->
    dctrl.business_id = id
    setBreakdownChart()
    return null

  dctrl.setBreakdownChart = ()->
    $http.get("/businesses/" + dctrl.business_id + "/dashboard/breakdown/").success( (data) ->
      exrevctx = document.getElementById("expenseRevenueChart")
      new Chart(exrevctx, data)
    )
    return null

  return this # Coffeescript auto returns the last line. Angular controllers are constructors so we must return `this`
])

我正在给 ng-init 打电话:

<div class="row dashboard-grid" ng-controller="DashboardReportsController as dctrl" ng-init="dctrl.setupDashboard('<%= @business.slug %>')" >

我遇到错误:

ReferenceError: setBreakdownChart is not defined

在错误和断点之间,我知道正在调用 setupDashbaord 但为什么 setBreakdownChart 未定义?

您忘记引用控制器。将其更改为

dctrl.setBreakdownChart()

而不是

setBreakdownChart()