2016-08-23 54 views
1

我想在我的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未定义?

+0

在你setupDashboard()方法,则调用setBreakdownChart(),但你是不是注射这种方法。 – Martin

+0

嘿@Martin对Angular来说,我还是一个新手,但这是我过去编写过控制器的过程,并且工作得很好。你能告诉我一个关于如何注入和解决这个问题的代码示例吗? – Deekor

+0

@马丁我从来没有见过!缺少'dctrl.setBreakdownChart'! – Deekor

回答

0

你忘了引用控制器。将其更改为

dctrl.setBreakdownChart() 

而不是

setBreakdownChart()