gpt4 book ai didi

javascript - AngularJS - XX 不是函数

转载 作者:行者123 更新时间:2023-11-29 19:15:59 25 4
gpt4 key购买 nike

在 AngularJS 中,我有如下 Controller :

function LoginController($scope, $rootScope, $location, $cookieStore, UserService) {

$scope.rememberMe = false;

$scope.login = function() {
UserService.authenticate($.param({
username: $scope.username,
password: $scope.password
}), function(authenticationResult) {
var authToken = authenticationResult.token;
$rootScope.authToken = authToken;
if ($scope.rememberMe) {
$cookieStore.put('authToken', authToken);
}
UserService.get(function(user) {
$rootScope.user = user;
$location.path("/");
});
});
};

$scope.register = function() {
UserService.register($.param({
username: $scope.username,
password: $scope.password
}), function(authenticationResult) {

});
};
};

和服务工厂:

var services = angular.module('exampleApp.services', ['ngResource']);

services.factory('UserService', function($resource) {
return $resource('rest/user/:action', {}, {
authenticate: {
method: 'POST',
params: {
'action': 'authenticate'
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
}, {
register: {
method: 'POST',
params: {
'action': 'register'
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
});
});

当我尝试在浏览器中使用注册功能时,我得到了TypeError: UserService.register 不是函数 我错过了什么?

我读过这篇文章:Angular - TypeError: XX is not a function这看起来很相似,但我不明白。

最佳答案

你被引用的答案(它只是我的),这与你想要实现的非常不同。

您的 $resource 对象格式不正确,自定义 $resource 方法应该存在于单个对象中,而不是将它们分开。

代码

services.factory('UserService', function($resource) {
return $resource('rest/user/:action', {}, {
authenticate: {
method: 'POST',
params: {
'action': 'authenticate'
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
},
register: {
method: 'POST',
params: {
'action': 'register'
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
});
});

关于javascript - AngularJS - XX 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com