其中的一部分內容包括這是否可行的問題,但我試圖創建一個名爲currentUser的工廠值,該工廠值將從userService中進行一次使用。我正試圖弄清楚如何使這種交互發生。在AngularJS中獲取並設置一個工廠值/對象
如果我的工廠如下:
app.factory('currentUser', function() {
});
app.factory('userService', function() {
return {
users: [{
name: "John",
password: "12",
email: "[email protected]",
phone: "238-491-2138"
}, {
name: "Austin",
password: "potaoes",
email: "[email protected]",
phone: "138-490-1251"
}]
};
});
,我有一個控制器,將執行以下操作,有沒有把currentuser = userService.users[i];
的方式。或者,如果這是一種可怕的方式,我該如何設置一種方式來跟蹤「當前用戶」?
$scope.login = function() {
for (var i = 0; i < userService.users.length; i++) {
if (userService.users[i].email.toLowerCase() === $scope.credentials.email.toLowerCase()) {
if (userService.users[i].password === $scope.credentials.password) {
$scope.messageLogin = "Success!";
$timeout(function() {
$timeout(function() {
$location.path("/account");
}, 500)
$scope.loggedIn = true;
$scope.messageLogin = "Redirecting...";
// currentUser == userService.users[i];
}, 500)
} else {
$scope.messageLogin = "Incorrect login details";
}
return;
}
}
$scope.messageLogin = "Username does not exist";
};
不知道這是可能的,因爲該工廠似乎總有一個return
,從來沒有一個GET /套方案的事實。所以如果這對於Factory來說是一個不好的用途,我應該怎麼做呢?
爲什麼過度使用$超時?是否嚴格地在消息出現時引入一些延遲併發生重定向?看起來像這是試圖解決一個問題,可以更好地解決承諾。 – 2015-02-10 18:55:06