web-dev-qa-db-fra.com

Erreur de fournisseur électronique inconnue lors de l'utilisation d'angularjs et de Ruby sur des rails

J'ai une application Rails/AngularJS qui fonctionne bien dans un environnement de développement local. Cependant, lorsque j'ai déployé cette application sur Amazon Cloud, AngularJS renvoie cette erreur dans la console du navigateur:

Unknown provider: eProvider <- e

Cependant, cela fonctionne bien sur l'environnement de développement.

Je suis en train d’accéder au service ci-dessous depuis l’un de mes fichiers javascript. Par exemple: -

userList. storeActorListWithId()

Mon service est le suivant: -

 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;
        }
    }

}]);

Mon fichier application.js se présente comme suit.

 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")
                    }
                }
            }

J'ai essayé beaucoup de solutions (utilisation de DI) données sur le site mais aucune ne m'aide. Aidez-moi, s'il vous plaît..

Merci d'avance

18
Catmandu

Enfin obtenu la solution après des heures de recherche.

Il y avait un problème de minification-safe annotation dans le bloc de résolution. Ce code donnait l'erreur ci-dessus.

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

Je l'ai résolu en changeant le code en ceci:

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

Dans mon cas (application Rails), je devais supprimer la gemme uglifier de ma Gemfile, puis supprimer la ligne de configuration dans config/environments/production.rb:

config.assets.js_compressor = :uglifier
0
Dorian

dans mon cas

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

a été changé en

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

alors la minification fonctionne

0
Mr.Green