有人可以帮助我解决这个问题。 事实上,我正在尝试注册一个新用户,并在创建新用户之前,我必须检查用户名是否存在。下面是用于此的工厂。TypeError:成功不是函数
.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: success is not a function
是使用这个工厂控制器
.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() {
}
});
};
})
您需要提供一些更多信息,以便我们可以帮助您。最好的方法是创建一些小提琴或Plunker来隔离问题。 –
你如何运行你的代码?我们看到工厂并想知道在调用service.userExists(account)时产生错误 –
是什么,您没有传递成功和失败回调,这是userExists函数的定义中预期的。这就是为什么你没有定义错误“成功”。你有没有在其他一些代码中定义这些,你在这里没有提到? –