Asp.net mvc 使用WebAPI2内置登录功能-AngularJS和MVC
我正在用AngularJS网站构建一个MVC,该网站连接到一个WebAPI2项目 我正在尝试让登录和注册页面正常工作 我已经遵循了这个pluralsight视频中的模块-但是我需要稍微修改它,以更好地适应我的网站结构,并在用户表中存储更多详细信息 当我尝试注册用户时,出现以下错误Asp.net mvc 使用WebAPI2内置登录功能-AngularJS和MVC,asp.net-mvc,angularjs,asp.net-web-api2,Asp.net Mvc,Angularjs,Asp.net Web Api2,我正在用AngularJS网站构建一个MVC,该网站连接到一个WebAPI2项目 我正在尝试让登录和注册页面正常工作 我已经遵循了这个pluralsight视频中的模块-但是我需要稍微修改它,以更好地适应我的网站结构,并在用户表中存储更多详细信息 当我尝试注册用户时,出现以下错误 TypeError: Cannot read property 'registerUser' of undefined at Scope.$scope.RegisterUser (http://localhost:44
TypeError: Cannot read property 'registerUser' of undefined
at Scope.$scope.RegisterUser (http://localhost:44260/Scripts/MyProject/Controllers/RegisterController.js:14:33)
我的代码:
LoginController.js
var LoginController = function ($scope, $window, UserAccount, CurrentUser) {
$scope.Register = function() {
$window.location.href = '/home/register';
};
$scope.isLoggedIn = function () {
return CurrentUser.getProfile().isLoggedIn;
};
$scope.message = '';
$scope.registerUser = function () {
$scope.model.confirmPassword = $scope.model.password;
UserAccount.registration.registerUser($scope.model,
function (data) {
$scope.model.confirmPassword = "";
$scope.message = "... Registration successful";
$scope.login();
},
function (response) {
$scope.isLoggedIn = false;
$scope.message = response.statusText + "\r\n";
if (response.data.exceptionMessage)
$scope.message += response.data.exceptionMessage;
// Validation errors
if (response.data.modelState) {
for (var key in response.data.modelState) {
$scope.message += response.data.modelState[key] + "\r\n";
}
}
});
}
$scope.login = function () {
$scope.model.grant_type = "password";
$scope.model.userName = $scope.model.email;
UserAccount.login.loginUser($scope.model,
function (data) {
$scope.message = "";
$scope.model.password = "";
CurrentUser.setProfile($scope.model.userName, data.access_token);
},
function (response) {
$scope.model.password = "";
$scope.message = response.statusText + "\r\n";
if (response.model.exceptionMessage)
$scope.message += response.model.exceptionMessage;
if (response.model.error) {
$scope.message += response.model.error;
}
});
}
};
LoginController.$inject = ['$scope', '$window', 'UserAccount', 'CurrentUser'];
UserAccount.js:
var UserAccount = function userAccount($resource, ApiAddress) {
return function () {
registration: $resource(ApiAddress + "/api/Account/Register", null,
{
'registerUser': { method: 'POST' }
});
login: $resource(ApiAddress + "/Token", null,
{
'loginUser': {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function(data, headersGetter) {
var str = [];
for (var d in data)
str.push(encodeURIComponent(d) + "=" +
encodeURIComponent(data[d]));
return str.join("&");
}
}
});
}};
UserAccount.$inject = ['$resource', 'ApiAddress'];
CurrentUser.js
var CurrentUser = function() {
return function () {
var profile = {
isLoggedIn: false,
username: "",
token: ""
};
var setProfile = function (username, token) {
profile.username = username;
profile.token = token;
profile.isLoggedIn = true;
return profile;
};
var getProfile = function () {
return profile;
}
return {
setProfile: setProfile,
getProfile: getProfile
}
}};
CurrentUser.$inject = [];