其中的一部分内容包括这是否可行的问题,但我试图创建一个名为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