有人可以幫助我解決這個問題。 事實上,我正在嘗試註冊一個新用戶,並在創建新用戶之前,我必須檢查用戶名是否存在。下面是用於此的工廠。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函數的定義中預期的。這就是爲什麼你沒有定義錯誤「成功」。你有沒有在其他一些代碼中定義這些,你在這裏沒有提到? –