2016-08-23 2 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

Эй, @ Мартин. Я все еще новичок в Angular, но так я писал мои контроллеры в прошлом, и это сработало. Не могли бы вы показать мне пример кода, как ввести и исправить это? – Deekor

+0

@martin nevermind Я вижу это! Отсутствует 'dctrl.setBreakdownChart'! – Deekor

ответ

0

Вы забыли обратиться к контроллеру. Измените его на

dctrl.setBreakdownChart() 

, а не

setBreakdownChart()