【发布时间】:2016-08-24 02:10:00
【问题描述】:
我正在尝试在我的 CoffeeScript 文件中定义一个角度控制器。
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 没有定义?
【问题讨论】:
-
在您的 setupDashboard() 方法中,您正在调用 setBreakdownChart(),但您并未注入该方法。
-
嘿@Martin 我对 Angular 还是有点陌生,但这就是我过去编写控制器的方式并且它已经奏效了。你能给我看一个关于如何注入和解决这个问题的代码示例吗?
-
@martin 没关系我看到了!缺少
dctrl.setBreakdownChart!
标签: ruby-on-rails angularjs coffeescript