2016-09-22 4 views
1

일부 세부 정보를 저장하고 파일을 업로드하는 양식이 있습니다. 나는 어떤 데이터를 얻을 수있는 공장을 가지고있다. ng-file-upload을 사용할 때 팩토리는 정의되지 않습니다.ng-file-upload를 사용할 때 팩토리가 정의되지 않았습니다.

 angular.module('tollApp') 
    .controller('mstrEmployeeCtrl',['Upload','$window', 
     function(Upload,$window,$scope,$http,$timeout,$filter,$mdToast,userDetailsFactory){ 

     $scope.ipForHttp = userDetailsFactory.getUserDetailsFromFactory().ipAddress; 
    //`userDetailsFactory` is undefined 
     $scope.SaveData = function(){ 
      // $scope.dobObj = new Date($scope.Emp.EmpDoB); 
      if ($scope.myform.$valid && $scope.passwordEqual) { 
      Upload.upload({ 
       url: '$scope.ipForHttp+"addEmployee?EmpID="+$scope.Emp.EmpID, 

       data:{file:file} //pass file as data, should be user ng-model 
      }) 
      .then(function(response){ 
       $scope.error=response.data.code; 
       console.log(JSON.stringify(response)); 
       console.log($scope.error+" SCOPE"); 

      }) 
       $scope.submitted = false; 
      } 
     }; 

} 
]); 

오류 : 정의되지

angular.min.js:117 TypeError: Cannot read property 'getUserDetailsFromFactory' of undefined 
at new <anonymous> (http://192.168.1.19/public/javascripts/mstrEmployeeCtrl.js:4:38) 
at Object.instantiate (http://192.168.1.19/public/javascripts/angular.min.js:41:477) 
at http://192.168.1.19/public/javascripts/angular.min.js:90:3 
at Object.link (http://192.168.1.19/node_modules/angular-route/angular-route.min.js:7:274) 
at http://192.168.1.19/public/javascripts/angular.min.js:16:230 
at ia (http://192.168.1.19/public/javascripts/angular.min.js:81:35) 
at n (http://192.168.1.19/public/javascripts/angular.min.js:66:176) 
at g (http://192.168.1.19/public/javascripts/angular.min.js:58:429) 
at http://192.168.1.19/public/javascripts/angular.min.js:58:67 
at http://192.168.1.19/public/javascripts/angular.min.js:62:430 <div data-ng-view="" class="ng-scope" data-ng-animate="1"> 

공장 :

angular.module('tollApp') 
.controller('indexController', function($scope,$http,$window,userDetailsFactory){ 
    $scope.usernameFromServer={}; 
    $scope.getUserDetails = function(){ 
     $http({ 
      method:'GET', 
      url:'http://192.168.1.19:80/getUserDetails' 
     }) 
     .then(function(response){ 

      // console.log(JSON.stringify(response)); 
      userDetailsFactory.setUserDetailsInFactory(response.data); 
     $scope.usernameFromFactory = userDetailsFactory.getUserDetailsFromFactory().usernameFromSession; 

      // $scope.usernameFromServer = userDetailsFactory.getUserDetailsFromFactory().username; 
      // console.log(JSON.stringify($scope.usernameFromFactory)+"usernameFromFactory"); 
     }) 
    } 
    $scope.logout = function(request,response){ 
     $http({ 
      method:'GET', 
      url:'/logout' 
     }) 
     .then(function(response){ 
      console.log(JSON.stringify(response)); 
      if(response.data=="logout"){ 
       $window.location.href="http://192.168.1.19:80/login"; 
      } 
     }) 
    } 
    console.log("indexController"); 
}).factory('userDetailsFactory',function(){ 
    var user = {}; 
    return { 
     setUserDetailsInFactory : function(val){ 
      user.useridFromSession = val[0].UserID; 
      user.usernameFromSession = val[0].UserName; 
      user.userroleFromSession = val[0].UserRole; 
      user.clientidFromSession = val[0].ClientID; 
      user.ipAddress = "http://192.168.1.19:80/"; 
      // user.ipAddress = "http://easypaytoll.com/"; 
      // console.log("in set "+user.clientidFromSession); 
     }, 
     getUserDetailsFromFactory : function(){ 
      return user; 
     } 
    }; 
}); 

답변

0

그것은 주입 문제입니다 여기에 코드입니다. 당신은 배열의 userDetailsFactory을 추가해야한다

angular.module('tollApp') 
    .controller('mstrEmployeeCtrl',['Upload','$window','$scope', '$http','$timeout','$filter','$mdToast','userDetailsFactory' 
     function(Upload,$window,$scope,$http,$timeout,$filter,$mdToast,userDetailsFactory){ 

편집 한 귀하의 오류는 분명하다 : userDetailsFactory가 정의되어 있지 않습니다. 이 공장을 어떻게 정의 했습니까? 동일한 모듈에 있습니까? 그렇지 않다면 모듈을 앱의 모듈 종속성에 추가 했습니까?

+0

나는 그것을 시도했다. 그것은 작동하지 않았다. – Abhi

+0

초기 문제는'userDetailsFactory'가 정의되지 않았다는 것입니다. 해결책은 주사하는 것입니다. 지금 어떤 오류가 있습니까? – Zakaria

+0

주사 후에도 같은 오류가 발생합니다 – Abhi