加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 错误:未知提供者:aProvider < - a

发布时间:2020-12-17 01:18:51 所属栏目:百科 来源:网络整理
导读:我在带有资产的 Ruby on Rails 3.2.8项目中使用AngularJS. 当我在我的开发机器上加载使用AngularJS的表单时,我没有问题.但是,当我在生产服务器上加载相同的表单时,我在Javascript控制台中收到此错误: Error: Unknown provider: aProvider - a 我已将其追溯
我在带有资产的 Ruby on Rails 3.2.8项目中使用AngularJS.

当我在我的开发机器上加载使用AngularJS的表单时,我没有问题.但是,当我在生产服务器上加载相同的表单时,我在Javascript控制台中收到此错误:

Error: Unknown provider: aProvider <- a

我已将其追溯到我的coffeescript文件,我在其中设置AngularJS以便在表单中使用:

$(event) ->
  $("#timesheet_description").autocomplete({source: '/autocomplete/work_descs'})

  # Create AngularJS module
  app = angular.module 'timesheetApp',[]

  # Create a AngularJS controller
  app.controller "TimesheetCtrl",($scope) ->
    $scope.costed_amount = 0
                                                                                                # Bind my module to the global variables so I can use it.
  angular.bootstrap document,["timesheetApp"]

如果我评论所有这些,页面将加载没有错误和没有AngularJS能力.

问题是由于Rails资产编译和缩小?
有没有办法解决这个问题,仍然使用coffeescript和Rails资产?

解决方法

当使用你现在使用的样式(称为预打字)时,AngularJS使用函数参数名来进行依赖注入.所以是的,缩小确实打破了这一点.

但修复很简单.在每个需要注入(使用’$xxx’)变量的情况下,执行以下操作:

app.controller "TimesheetCtrl",['$scope',($scope) ->
  $scope.costed_amount = 0
]

基本上,用数组替换所有函数定义.最后一个元素应该是函数定义本身,第一个元素是要注入的对象的$名称.

在docs上还有一些(尽管不够清楚)信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读