我希望我的SPA在登录后将用户重定向到 / home 。首先点击Log In
登录用户。第二次点击 - 重定向。但是一切都应该在第一次点击时发生。
如果我删除 User.logIn()代码并承诺,重定向将首次运行。那是为什么?
myApp.controller('loginController', ['$scope', '$location', function($scope, $location) {
$scope.message = 'Login page!';
$scope.update = function(usr) {
User.logIn(usr.name, usr.password)
.then(function() {
$location.path('/home');
}, function(err) {
alert(err.message);
})}
}]);
按钮代码:
<button ng-click="update(usr)">Log In</button>
我尝试将 $ location 代码放在另一个然后 - 操作中(以防万一)但是它没有用。
修改 我有点工作了。不完全是你的建议,但你给了我一个主意。不过,我现在正在阅读AngularJS中的事件。并且看看我是否最终可以提出更接近你想法的东西 - 有了承诺。
$scope.goHome = function() {
$location.path('/home');
};
按钮:
<button ng-click="goHome()" ng-mousedown="update(usr)">Log In</button>
编辑2: 如果有人遇到同样的问题,我刚刚发现了2个问题。第一个解释了为什么重新路由在Parse承诺中不起作用以及如何使其工作,第二个也有用的信息: