【问题标题】:Rails 4 production angularjs controller is not a function, undefinedRails 4 生产 angularjs 控制器不是函数,未定义
【发布时间】:2014-05-24 12:56:14
【问题描述】:

在我的开发环境中,我的 Angular 页面响应得很好。当我访问带有角度内容的页面时,一旦将环境更改为生产环境,我会在控制台中收到一条错误消息:

Error: [ng:areq] Argument 'SwimmersCtrl' is not a function, got undefined

这是我的 modules.js.coffee 文件:

@comsatrack = angular.module 'comsatrack',
  ['ngResource', 'comsatrackFilters', 'ngAnimate']

这是我的 application.js.coffee 文件:

#= require jquery
#= require jquery.turbolinks
#= require jquery_ujs
#= require bootstrap
#= require turbolinks

#= require angular
#= require angular-resource
#= require angular-animate

#= require modules
#= require_tree .

这是我的swimmers.js.coffee 文件:

@comsatrack.controller 'SwimmersCtrl', ['$scope', 'Swimmers',
  @SwimmersCtrl = ($scope, Swimmers) ->

$scope.predicate =
  value: 'last_name'

$scope.alerts = []

$scope.addAlert = (swimmer) ->
  $scope.alerts = []
  $scope.alerts.push
    type: "success"
    msg: "#{swimmer.first_name}
          #{swimmer.last_name} has been checked in!"

$scope.closeAlert = (index) ->
  $scope.alerts.splice index, 1

$scope.showPhone = (swimmer) ->
  swimmer.phone_number?

$scope.hideCheckin = (swimmer) ->
  swimmer.phone_number?

$scope.totalDisplayed = 10

$scope.loadMore = ->
  $scope.totalDisplayed += 100

Swimmers.index (data) ->
  $scope.Swimmers = data
]

在索引页面上,我通过以下方式访问此控制器:

<div ng-app='comsatrack'>
  <div ng-controller='SwimmersCtrl'>
    <!-- index page content -->
  </div>    
</div>

我已经仔细检查以确保我没有在我的应用程序的其他任何地方双重初始化我的模块。

提前感谢您提供与此问题相关的任何帮助。我也将不胜感激有关代码的任何反馈或 cmets,与问题无关。

【问题讨论】:

    标签: ruby-on-rails angularjs coffeescript


    【解决方案1】:

    您的 JS 文件是否正在浏览器中加载,如果是,它们是否有您预期的 javascript 代码?

    我最初的想法是围绕资产管道。除非您更改资产管道配置,否则开发环境默认为动态编译资产(这将加载您的 javascript),而生产环境 Rails 假定资产已经预编译,并将由您的 Web 服务器作为静态资产提供。如果是这样的

    $ RAILS_ENV=production bundle exec rake assets:precompile
    

    查看 Rails 管道 - 生产: http://guides.rubyonrails.org/asset_pipeline.html#in-production

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 2015-08-03
      相关资源
      最近更新 更多