web-dev-qa-db-ja.com

不明なプロバイダーe-providerエラーがangularjsとRuby on rails

ローカル開発環境で正常に動作するRails/AngularJSアプリがあります。ただし、このアプリをAmazon Cloudにデプロイすると、AngularJSはブラウザーコンソールに次のエラーを返します。

Unknown provider: eProvider <- e

ただし、開発環境では正常に機能します。

私は私のjavascriptファイルの1つから以下のサービスにアクセスしています..例えば:-

userList. storeActorListWithId()

私のサービスは次のとおりです:-

 woi.service('userList',['$rootScope', 'userAPI' , 'recoAPI', function($rootScope, userAPI, recoAPI){

    var actorList = [];
    var actorId = "";
    return{
        storeActorListWithId: function(data){
            actorList = [];
            angular.forEach(data,function(actor){
                if(actor.castname)
                {
                    actorList.Push({name: actor.castname,id: actor.castid});
                }
            })
        } ,
        getActorListWithId: function(){
            return actorList;
        },
        storeActorId: function(id){
            actorId = id;
        },
        getActorId: function(){
            return actorId;
        }
    }

}]);

私のapplication.jsファイルは次のとおりです。縮小化は安全かどうか。

 resolve: {
                checkActorId: function($route,$location,$rootScope){
                    var url = $route.current.params.id;
                    var actorName = url.replace(/\-/g, " ").replace(/\~/g, "-").replace(/\$/g, "/");
                    var  actorList = $rootScope.storeActorNameAndId;
                    if($rootScope.storeActorNameAndId){
                        angular.forEach(actorList, function(actor, key){
                            if(actor.name == actorName){
                                $rootScope.actorid = actor.id;
                            }
                        });
                    }
                    else
                    {
                        $location.path("home")
                    }
                }
            }

私はウェブサイトで与えられた多くの解決策(DIの使用)を試しましたが、どれも私を助けていません。私を助けてください..

前もって感謝します

20
Catmandu

何時間もの研究の末、ついに解決策を得ました。

解決ブロックにminification-safeアノテーションの問題がありました。このコードは上記のエラーを出していました。

resolve: {
    setParams: function($rootScope, $route) {
        $rootScope.Programmeid = $route.current.params.programmeid;
        $rootScope.channelid = $route.current.params.channelid;
    }
}

コードを次のように変更して解決しました。

resolve: {
    setParams: ['$rootScope', '$route', function($rootScope, $route) {
        $rootScope.Programmeid = $route.current.params.programmeid;
        $rootScope.channelid = $route.current.params.channelid;
    }];
}
41
Catmandu

私の場合(Railsアプリ)、uglifierからGemfile gemを削除してから、config/environments/production.rbの構成行を削除する必要がありました。

config.assets.js_compressor = :uglifier
0
Dorian

私の場合

app.config(function ($stateProvider) {
  $stateProvider
    .state('A', {
      ...,       
    });
});

に変更されました

app.config(["$stateProvider", function ($stateProvider) {
  $stateProvider
    .state('A', {
      ...,       
    });
}]);

その後、縮小が機能します

0
tnusraddinov