有人可以帮我解决这个问题。实际上,我正在尝试注册新用户,在创建新用户之前,我必须检查用户名是否存在。下面是用于此的工厂。
.factory('accountService', function($resource, sessionService) {
var service = {};
service.register = function(account, success, failure) {
if (success (service.userExists(account))){
failure();
} else {
var Account = $resource("/Test/rest/account/student");
Account.save({}, account, success, failure);
}
};
service.userExists = function(account, success, failure) {
var Account = $resource("/Test/rest/account");
var data = Account.get({
username : account.username,
password : account.password
}, function() {
var accounts = data.username;
if (accounts && accounts.length !== 0) {
service.data = data;
success(account);
} else {
failure();
}
}, failure);
};
service.getuser = function() {
return service.data;
};
return service;
})
但是当我运行它时,出现以下错误消息:
TypeError:成功不是函数
下面是使用该工厂的控制器
.controller(
"RegisterController",
function($scope, sessionService, $state, accountService) {
$scope.register = function() {
accountService.register($scope.account, function(
returnedata) {
sessionService.login($scope.account).then(
function() {
$state.go("home");
});
}, function() {
$scope.registererror = function() {
}
});
};
})
.factory(
'accountService',
function($resource, sessionService) {
var service = {};
service.register = function(account, success, failure) {
service
.validUserName(
account,
function(answer) {
if (answer) {
console.log(answer);
failure();
} else {
var Account = $resource("/Test/rest/account/student");
Account.save({}, account,
success, failure);
}
}, failure);
};
service.userExists = function(account, success, failure) {
var Account = $resource("/Test/rest/account");
var data = Account.get({
username : account.username,
password : account.password
}, function() {
console.log("user details : ", data);
var accounts = data.username;
if (accounts && accounts.length !== 0) {
service.data = data;
success(account);
} else {
failure();
}
}, failure);
};
service.validUserName = function(account, success, failure) {
var Account = $resource("/Test/rest/account/user");
var data = Account.get({
username : account.username
}, function() {
var accounts = data.username;
if (accounts && accounts.length !== 0) {
service.data = data;
success(true);
} else {
success(false);
}
}, failure);
};
service.getuser = function() {
return service.data;
};
return service;
})
对于控制器:
.controller(
"RegisterController",
function($scope, sessionService, $state, accountService) {
$scope.register = function() {
accountService.register($scope.account, function(
returnedata) {
accountService.userExists($scope.account, function(
account) {
sessionService.login($scope.account).then(
function() {
$state.go("get_started");
});
});
}, function() {
$scope.registererror = function() {
}
});
};
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句