-1

したがって、Angular Cookie とローカル ストレージを一緒に使用しようとしていますが、なぜ Cookie がこのように機能するのかわかりません。基本的に、console.log(theInternet) の部分は未定義であるとログに出力されますが、明確に入力されている場合、その値は 12 です。

<body ng-app="app" ng-controller="Ctrl">
  <div ng-controller="internet-test-controller">
    <p>hi</p>
  </br>
  </br>
  <button ng-click="$storage.counter = $storage.counter + 1">{{$storage.counter}}</button>
  <div ng-click="$storage.money = $storage.money + 1">{{$storage.money}}</div>
  </div>
</body>

<script>
var the_app = angular.module('app', ['ngStorage', 'ngCookies'])
the_app.controller('Ctrl', function ($scope, $localStorage, $cookies){
    $scope.$storage = $localStorage.$default({
      counter: 1, 
      money: $cookies.get('123abc')
    });

});
the_app.controller('internet-test-controller', ['$cookies', function($cookies) {
    var theInternet = $cookies.get('123abc');
    $cookies.put('123abc', 12);
    console.log(theInternet);
}]);
</script>
4

1 に答える 1

1
the_app.controller('internet-test-controller', ['$cookies', function($cookies) {
    var theInternet = $cookies.get('123abc');
    $cookies.put('123abc', 12);
    console.log(theInternet);
}]);

(空の) Cookie を読み取り、値 12 を格納してから、元の (空の) 変数をログに記録しています。

Internet-test-controller を 2 回目にトリガーすると、12 が返されます (これは、(空ではない) Cookie をtheInternet.

ちなみに、localStorage と Cookie の両方を使用することが有用である、または必要となることはめったにありません。これらは同じ目的を果たします。すでに localStorage に依存している場合は、Cookie を使用する必要はまったくありません。

于 2015-09-21T14:23:36.653 に答える