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
时,我需要重新加载页面以反映更改。服务将确保数据在您更改路由时可用