0
app.controller('appCtrl', function ($scope, $cookieStore) {
$scope.$watch(function(){return $cookieStore.get('currentUser');},   function(newValue, oldValue){
    if(newValue !== oldValue){
            $scope.currentUser = $cookieStore.get('currentUser');
        }
    });
});

我开发了上面的代码,目的是观察 $cookieStore 中保存的值。当用户登录成功后,json 对象会保存在 $cookieStore 中,借助 $watch 函数,用户信息会显示在页面的右上角。

$cookieStore.put('currentUser', response);

我对这个解决方案有两个问题:

  1. $watch 函数没有像我希望的那样更新 $scope.currentUser。只有当我刷新整个网页时它才会更新。
  2. 在这个解决方案的某个地方,$digest() 函数被重复调用。我试图通过添加if(newValue !== oldValue){}来解决这个问题,但它不起作用。

如果我将解决方案更改为使用 $cookies 而不是 $cookieStore,它似乎都按预期工作,但 $cookies 不允许我保存 Json 对象,这就是我更喜欢使用 $cookieStore 的原因。

有任何想法吗?真的很感激!

4

0 回答 0