coffeescript中的角度控制器
问题描述:
我想在我的CoffeeScript文件中定义角度控制器。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
未定义?
答
你忘了引用控制器。将其更改为
dctrl.setBreakdownChart()
而不是
setBreakdownChart()
在你setupDashboard()方法,则调用setBreakdownChart(),但你是不是注射这种方法。 – Martin
嘿@Martin对Angular来说,我还是一个新手,但这是我过去编写过控制器的过程,并且工作得很好。你能告诉我一个关于如何注入和解决这个问题的代码示例吗? – Deekor
@马丁我从来没有见过!缺少'dctrl.setBreakdownChart'! – Deekor