ローカル開発環境では問題なく動作する 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) {
...
}];