PassFactory.setNewPass 不是函数,工厂函数不是函数
PassFactory.setNewPass is not a function, factory function not a function
似乎无法让这个工厂正常工作。
我正在尝试执行来自工厂的 $http 请求。
但我收到以下错误:
类型错误: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("/");
});
}
};
}
})();
您在控制器工厂函数中遗漏了 $rootScope
。始终确保依赖顺序已被注入到 DI
数组中,您应该以相同的顺序在其工厂函数中请求它们的实例。
angular
.module("myApp")
.controller('PCtrl', ['$scope', '$location', '$rootScope', 'PassFactory', setHome]);
//added $rootScope in 3rd place
function setHome($scope, $location, $rootScope, PassFactory) {
似乎无法让这个工厂正常工作。
我正在尝试执行来自工厂的 $http 请求。
但我收到以下错误:
类型错误: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("/");
});
}
};
}
})();
您在控制器工厂函数中遗漏了 $rootScope
。始终确保依赖顺序已被注入到 DI
数组中,您应该以相同的顺序在其工厂函数中请求它们的实例。
angular
.module("myApp")
.controller('PCtrl', ['$scope', '$location', '$rootScope', 'PassFactory', setHome]);
//added $rootScope in 3rd place
function setHome($scope, $location, $rootScope, PassFactory) {