无法在生产中实例化模块

时间:2014-05-25 00:54:57

标签: javascript ruby-on-rails angularjs heroku

我只是将我的程序推送到heroku并且我测试了角度的页面加载了以下错误:

未捕获错误:[$ injector:modulerr]无法实例化模块diceAngularApp,原因如下: 错误:[$ injector:unpr]未知提供者:t

开发工作非常好,所以我不确定问题是什么。要查看错误,您可以访问www.firexion.com/dice

页面

我不确定问题的确切位置,因此我不确定要分享哪些代码。这是指向github的链接:https://github.com/Firexion/hundred

我的猜测是它可能在角度app.js中?:

'use strict';

angular
.module('diceAngularApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute'
])
.config(function ($routeProvider) {
$routeProvider
  .when('/dice', {
    templateUrl: '../../views/dice/main.html',
    controller: 'DiceController'
  })
  .otherwise({
    redirectTo: '/dice'
  });
});

或者我把它包含在我的rails应用程序javascript文件中错了,lumen.js:

// Lumen
// Bootswatch
//= require jquery-2.1.0
//= require jquery_ujs
//= require lumen/loader
//= require lumen/bootswatch

// angular
//= require angular/angular
//= require angular/angular-cookies
//= require angular/angular-resource
//= require angular/angular-route
//= require angular/angular-sanitize
//= require angular/angular-scenario

// dice
//= require dice/app.js
//= require dice/controllers/main.js
//= require dice/dice.js

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:7)

我强烈怀疑,基于Angular正在寻找变量t的提供者,我猜你不会命名服务/控制器等。是你在某个地方使用缩小/编译器来破坏你的变量。

要解决此问题并使用编译器安全,您需要调整语法。完整的详细信息here,但下面是瘦。

myapp.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('hello/:queryId', {
    templateUrl: 'mypartial.html',
    controller: MyCtrl,
    controllerAs: 'myCtrl',
    resolve: {
      'myParam': ['myService', '$route', function(myService, $route) {
        return myService.get($route.current.params.queryId);
      }]
    }
  });