部署Rails / AngularJS应用程序到Heroku时未知的提供程序错误

我有一个适用于本地开发环境的Rails / AngularJS应用程序。 但是,当我将这个应用程序部署到Heroku时,AngularJS不起作用返回这个错误:

Unknown provider: eProvider <- e

我做了一些研究,似乎与预编译和缩小资产有关,但我不知道该如何解决这个问题。 有任何想法吗? 谢谢!

这是控制器的外观:

function RemindersCtrl($scope, $http) {
  $http.get('/reminders.json').success(function(data) {
    $scope.reminders = data;
    console.log(data);
  });
}

这是视图中的代码:

    %section.reminders
      %div{"ng-controller" => "RemindersCtrl"}
        %ul
          %li{"ng-repeat" => "reminder in reminders"}
            .title {{reminder.title}}

更新:我将控制器更改为此,但结果相同:

var RemindersCtrl = function($scope, $http) {
  $http.get('/reminders.json').success(function(data) {
    $scope.reminders = data;
    console.log(data);
  });
}
RemindersCtrl.$inject = ['$scope','$http'];

根据AngularJS教程(http://docs.angularjs.org/tutorial/step_05),您可以将其添加到控制器以防止缩小问题:

function RemindersCtrl($scope, $http) {
  ...
}
RemindersCtrl.$inject = ['$scope', '$http'];

或者不是像这样定义一个函数:

function RemindersCtrl($scope, $http) {
  ...
}

它应该这样做:

var RemindersCtrl = ['$scope', '$http', function($scope, $http) {
  ...
}];

您可能将您的控制器定义为FooController = function($http) {} ,您应该将其定义为FooController = ["$http", function($http){}]

在这里看到mroe


有角度的团队(也一般来说)建议我们不污染全球范围。

.controller方法,

var myApp = angular.module('myApp',[]);

myApp.controller('GreetingCtrl', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);

为我工作得很好。 这在角度理解控制器文档中有记录

链接地址: http://www.djcxy.com/p/77623.html

上一篇: Unknown provider error when deploying Rails/AngularJS app to Heroku

下一篇: templateUrl angularjs routerProvider for Codeigniter