为什么 $cookies 和 $localStorage 不能一起工作?
Why aren't $cookies and $localStorage working together?
所以我尝试将 angular cookie 和本地存储一起使用,我不确定为什么 cookie 会这样工作。基本上,console.log(theInternet) 部分在日志中显示它是未定义的,当在 put 中明确显示时,它的值为 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>
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 时,您将得到 12(因为它将通过将(非空)cookie 读取到 theInternet
.
开始
顺便说一下,同时使用 localStorage 和 cookie 很少有用或没有必要 -- 它们的用途相同。如果您已经依赖 localStorage,则根本不需要使用 cookie。
所以我尝试将 angular cookie 和本地存储一起使用,我不确定为什么 cookie 会这样工作。基本上,console.log(theInternet) 部分在日志中显示它是未定义的,当在 put 中明确显示时,它的值为 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>
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 时,您将得到 12(因为它将通过将(非空)cookie 读取到 theInternet
.
顺便说一下,同时使用 localStorage 和 cookie 很少有用或没有必要 -- 它们的用途相同。如果您已经依赖 localStorage,则根本不需要使用 cookie。