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