【问题标题】:AngularJs - $cookies reflecting changes only after refresh on same stateAngularJs - $cookies 仅在刷新相同状态后反映更改
【发布时间】:2016-02-02 00:37:24
【问题描述】:

在从modalInstanceController 成功登录后,我使用$cookies 存储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 仅在页面刷新时显示。

【问题讨论】:

    标签: angularjs angular-cookies


    【解决方案1】:

    从服务器收到信息后,您的代码中没有任何迹象表明您正在设置 userId。 homepageController 只会在加载时读取 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时,我需要重新加载页面以反映更改。
    • 一项服务将确保您更改路线时数据可用
    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    相关资源
    最近更新 更多