我想在返回承诺后更改位置,但是,位置不会改变。
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中使用。
控制台显示已创建的用户且没有错误。
答案 0 :(得分:0)
任何时候您的应用程序需要对当前URL中的更改做出反应,或者您想要在浏览器中更改当前URL。
更改浏览器URL时,不会导致整页重新加载。 要在更改网址后重新加载网页,请使用较低级别的API $ window.location.href 。
答案 1 :(得分:0)
该问题与角度摘要周期有关。 要解决它,你可以这样做:
$location.path('/home');
$rootScope.$apply();