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);
我对这个解决方案有两个问题:
- $watch 函数没有像我希望的那样更新 $scope.currentUser。只有当我刷新整个网页时它才会更新。
- 在这个解决方案的某个地方,$digest() 函数被重复调用。我试图通过添加if(newValue !== oldValue){}来解决这个问题,但它不起作用。
如果我将解决方案更改为使用 $cookies 而不是 $cookieStore,它似乎都按预期工作,但 $cookies 不允许我保存 Json 对象,这就是我更喜欢使用 $cookieStore 的原因。
有任何想法吗?真的很感激!