来自promise的$ location.path()

时间:2016-10-26 20:12:23

标签: javascript angularjs firebase firebase-authentication

我想在返回承诺后更改位置,但是,位置不会改变。

function register() {
    firebase.auth().createUserWithEmailAndPassword($scope.email, $scope.password)
    .then(function (user) {
        console.log(user);
        UserService.setUser(user);
        $location.path('/home');
    })
    .catch(function (error) {
        $scope.message = error.message;
        alert($scope.message);
    });
}

我假设这是因为它在promise .then函数中,但我没有看到$ location上的文档说它不能在promise中使用。

控制台显示已创建的用户且没有错误。

2 个答案:

答案 0 :(得分:0)

来自AngularJS Documentation

我应该何时使用$ location?

任何时候您的应用程序需要对当前URL中的更改做出反应,或者您想要在浏览器中更改当前URL。

它不做什么?

更改浏览器URL时,不会导致整页重新加载。 要在更改网址后重新加载网页,请使用较低级别的API $ window.location.href

答案 1 :(得分:0)

该问题与角度摘要周期有关。 要解决它,你可以这样做:

$location.path('/home');
$rootScope.$apply();