Rails/AngularJS アプリを Heroku にデプロイするときに不明なプロバイダー エラーが発生する 質問する

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'];

ベストアンサー1

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) {
  ...
}];

おすすめ記事