AngularJs-$cookies仅在刷新相同状态后反映更改
从AngularJs-$cookies仅在刷新相同状态后反映更改,angularjs,angular-cookies,Angularjs,Angular Cookies,从modalInstanceController成功登录后,我使用$cookies存储userId,然后在我的主页控制器中获取userId。在整个过程中,应用程序的状态没有改变,页面也没有重新加载。 现在,当我在这个过程中控制台记录userId时,它会显示undefined,但当我刷新页面时,userId会完美地显示出来 我在成功登录时预先填写表单,因此我不想重新加载我的状态。任何解决方案,使我可以实现这一点 代码段: modalInstanceController $scope.login
modalInstanceController
成功登录后,我使用$cookies
存储userId
,然后在我的主页控制器中获取userId
。在整个过程中,应用程序的状态没有改变,页面也没有重新加载。
现在,当我在这个过程中控制台记录userId
时,它会显示undefined
,但当我刷新页面时,userId
会完美地显示出来
我在成功登录时预先填写表单,因此我不想重新加载我的状态。任何解决方案,使我可以实现这一点
代码段:
modalInstanceController
$scope.login = function() {
utilities.login()
.success(function(response) {
$cookies.put('user_id', response.message.user_id);
});
$modalInstance.dismiss('cancel');
};
$scope.userId = $cookies.get('user_id');
homepageController
$scope.login = function() {
utilities.login()
.success(function(response) {
$cookies.put('user_id', response.message.user_id);
});
$modalInstance.dismiss('cancel');
};
$scope.userId = $cookies.get('user_id');
userId
仅在页面刷新时显示。从服务器收到信息后,代码中没有迹象表明您正在设置userId。homepageController仅在加载cookie时读取cookie
$scope.login = function() {
utilities.login()
.success(function(response) {
$cookies.put('user_id', response.message.user_id);
// add next line
$scope.userId = $cookies.get('user_id');
});
$modalInstance.dismiss('cancel');
};
在从服务器收到信息后,代码中没有迹象表明您正在设置userId。homepageController仅在加载cookie时读取cookie
$scope.login = function() {
utilities.login()
.success(function(response) {
$cookies.put('user_id', response.message.user_id);
// add next line
$scope.userId = $cookies.get('user_id');
});
$modalInstance.dismiss('cancel');
};
但我的视图仍然并没有更新,只是在刷新页面后才更新。你们能发布应用程序结构的更多详细信息吗?也许你们需要使用服务/工厂将数据从登录组件传递到其他组件。我试图实现的是全局共享数据,并在页面刷新后保留数据。如果我使用服务,则在重新加载页面后数据不会持久,并且当我使用localStorageService
和$cookies
时,我需要重新加载页面以反映更改。服务将确保在您更改路由时数据可用,但我的视图仍然没有更新,只有在刷新页面后才会更新。您可以发布应用程序结构的更多详细信息吗?也许您需要使用服务/工厂将数据从登录组件传递到其他组件。我试图实现的是全局共享数据,并在页面刷新后保留数据。如果我使用服务,则在重新加载页面后数据不会持久,并且当我使用localStorageService
和$cookies
时,我需要重新加载页面以反映更改。服务将确保数据在您更改路由时可用