簡體   English   中英

使用ng-file-upload時,工廠未定義

[英]factory is undefined when using 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;
        }
    };
});

這是注射問題。 你必須將userDetailsFactory放在數組中:

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

編輯1您的錯誤很明確: userDetailsFactory 你是怎么定義這個工廠的? 它在同一個模塊中嗎? 如果沒有,你是否將其模塊添加到應用程序的模塊依賴項?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM