我在一个带有资源的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资产?
$scope
被重命名,它会出现错误。 我建议通过app.controller('TimesheetCtrl', ['$scope', function($scope) {...}]);
显式注入$scope
(以与Cofeescript等效的方式)。虽然可能存在其他类似情况。 - Tosh