【问题标题】:Angular controller in coffeescript咖啡脚本中的角度控制器
【发布时间】: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


【解决方案1】:

您忘记引用控制器。改成

dctrl.setBreakdownChart()

而不是

setBreakdownChart()

【讨论】:

    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多