AngularJs - $cookies 仅在相同状态下刷新后反映变化

AngularJs - $cookies reflecting changes only after refresh on same state

我正在使用 $cookies 在从 modalInstanceController 成功登录后存储 userId,然后在我的 homepageController 中获取 userId。在整个过程中,应用程序的状态没有改变,页面也没有重新加载。 现在,当我在此过程中控制台记录 userId 时,它显示 undefined,但是当我刷新页面时,userId 完美显示。

我在成功登录时预填表格,所以我不想重新加载我的状态。对此的任何解决方案,以便我可以实现。

代码片段:

modalInstanceController

 $scope.login = function() {
    utilities.login()
    .success(function(response) {
      $cookies.put('user_id', response.message.user_id);
    });
    $modalInstance.dismiss('cancel');
  };

homepageController

$scope.userId = $cookies.get('user_id');

userId 仅在页面刷新时显示。

您的代码中没有迹象表明您在收到服务器返回的信息后正在设置用户 ID。主页Controller只会在加载时读取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');
 };