3

이 팩토리가 제대로 작동하지 않는 것 같습니다. 공장에서 $ http 요청을하려고합니다.

형식 오류 : 는하지만이 오류를 받고 있어요 PassFactory.setNewPass 함수 아래

하지 않다 코드 :

공장
PassFactory.setNewPass는 함수가 아니며 팩토리 함수가 함수가 아닙니다.

(function() { 
     angular 
      .module("myApp") 
      .factory('PassFactory', ['$http', function ($http) { 
    /* 
       var passFactory = {}; 
       passFactory.setNewPass = function (newpass, user) { 
        return $http.post('/password/' + newpass, user, function (response) { 
        }); 
       }; 
    */ 
       return { 
        setNewPass: function (newpass, user) { 
         return $http.post('/password/' + newpass, user, function (response) { 
         }); 
        } 
       }; 
      }]) 
    })(); 



을 컨트롤러

(function() { 
     angular 
      .module("myApp") 
      .controller('PCtrl', ['$scope', '$location', '$rootScope', 'PassFactory', setHome]); 

     function setHome($scope, $location, PassFactory) { 
      $scope.login = function (user) { 
       if (user.newpassword == user.newpasswordconfirm) { 


        PassFactory.setNewPass(user.newpassword, user).then(function (response) { 
         $location.path("/"); 
        }); 


       } 
      }; 
     } 
    })(); 

답변

1

컨트롤러 팩토리 기능에서 $rootScope을 찾지 못했습니다. 종속 순서가 항상 DI 배열 안에 삽입되었는지 확인하십시오. 동일한 순서로 팩토리 함수 내에서 해당 인스턴스를 요청해야합니다.

angular 
.module("myApp") 
.controller('PCtrl', ['$scope', '$location', '$rootScope', 'PassFactory', setHome]); 

//added $rootScope in 3rd place 
function setHome($scope, $location, $rootScope, PassFactory) { 
+0

정말 고마워요! 그게 내 문제를 해결해 줬어. –

관련 문제