PassFactory.setNewPass不是一个函数,工厂函数不是一个函数。

3

我似乎无法让这个工厂正常运作。 我正在尝试从工厂进行$http请求。 但是我遇到了以下错误:

TypeError: 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个回答

1

您在控制器工厂函数中缺少了$rootScope。请确保依赖项的顺序已经注入到DI数组中,并且在其工厂函数内按照相同的顺序请求它们的实例。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接