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);
このソリューションには 2 つの問題があります。
- 私が望んでいたように、 $watch 関数は $scope.currentUser を更新しません。Web ページ全体を更新したときにのみ更新されます。
- このソリューションのどこかで、$digest() 関数が繰り返し呼び出されました。if(newValue !== oldValue){}を追加してこの問題を解決しようとしましたが、機能しません。
$cookieStore の代わりに $cookies を使用するようにソリューションを変更すると、すべて期待どおりに動作しているように見えますが、$cookies では Json オブジェクトを保存できないため、代わりに $cookieStore を使用することを好みます。
何か案は?本当に感謝しています!