programing

레일에서 angularjs 및 루비를 사용하는 동안 알 수 없는 공급자 e-provider 오류가 발생했습니다.

padding 2023. 10. 5. 21:14
반응형

레일에서 angularjs 및 루비를 사용하는 동안 알 수 없는 공급자 e-provider 오류가 발생했습니다.

레일/각형이 있습니다.현지 개발 환경에서 잘 작동하는 JS 앱.하지만 아마존 클라우드에 이 앱을 배포했을 때 AngularJS는 브라우저 콘솔에서 다음 오류를 반환합니다.

Unknown provider: eProvider <- e

하지만 개발 환경에서는 잘 작동합니다.

저는 제 자바스크립트 파일 중 하나에서 아래 서비스에 접속하고 있습니다.예:-

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 사용)을 시도해 보았지만 그 어느 것도 도움이 되지 않습니다.도와주세요..

미리 감사드립니다.

몇 시간 동안의 연구 끝에 마침내 해결책을 얻었습니다.

해결 블록에 최소화 안전 주석 문제가 발생했습니다.이 코드는 위의 오류를 주고 있었습니다.

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

저의 경우 (레일스 앱)을 제거해야 했습니다.uglifier나의 보석Gemfile구성 라인을 제거합니다.config/environments/production.rb:

config.assets.js_compressor = :uglifier

나 같은 경우에는

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

로 변경되었습니다.

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

그 다음에 미니미네이션이 효과가 있습니다.

언급URL : https://stackoverflow.com/questions/20604469/unknown-provider-e-provider-error-while-using-angularjs-and-ruby-on-rails

반응형