2017-09-25 16 views
0

私はangularjsのクッキーをテストしています。なぜ私はそれがコンソールで未定義に戻るのだろうかと思いますか? $ cookieStore.put()を使用して値を設定または保存すると、クッキーから値を取得するときに未定義に戻ります。

<!DOCTYPE html> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular-cookies.js"></script> 
    <script> 
     angular.module('app', ['ngCookies']).controller('MyController', ['$scope','$cookieStore', function($scope, $cookieStore) { 

      $scope.WriteCookie = function() {   
       $cookieStore.put('visited', $scope.yes);     
       console.log($cookieStore.get('visited')); 
      }  

      $scope.ReadCookie = function() { 
       $cookieStore.get('visited'); 
       console.log($cookieStore.get('visited')); 
      } 

     }]); 
    </script> 
</head> 
<body ng-app="app"> 
    <form> 
    <div ng-controller="MyController">  
    <input type="button" value="Write Cookie" ng-click="WriteCookie()" /> 
    <input type="text" ng-model="yes" /> 

    <input type="button" value="Read Cookie" ng-click="ReadCookie()" /> 
    <input type="text" ng-model="cookie" /> 
    </div> 
    </form> 
</body> 
</html> 
+0

あなたは「」タグが開かれていないようです。 – Phil

+0

@Philそれは未定義です。 – Chuck

+0

うまく動作するようです〜http://plnkr.co/edit/hqbFDzuCB1N9ZTUsq321?p=preview。 '$ scope.cookie = $ cookieStore.get( 'visited')'を追加しました。私のローカルマシン上で値 – Phil

答えて

0

このようにしてみてください。

更新クッキーのバージョン1.6.6および$クッキーを使用する代わりに、$は、cookiestoreの

angular.module('myApp', ['ngCookies']) 
.controller('myController', ['$cookies', function($cookies) { 

    $cookies.put('myFavorite', 'oatmeal'); 
    var favoriteCookie = $cookies.get('myFavorite'); 

    console.log('favoriteCookie', favoriteCookie); 

}]); 
+0

localhost – Chuck

0

私はあなたのコード2つの方法でテストしました。それをファイルとして開き、サーバーから開きます。最初のケースでは私は '未定義'となり、2番目のケースでは期待通りにクッキーを読み込みます。私はいくつかの掘り出しを行い、Chromeを含むいくつかのブラウザのように見えますが、ファイルとして開いたページのCookieを設定することはできません。 More info ...

+0

これは面白い状況です。まずlocalhostを使わないで直接ファイルを開きますが、localhostで実行するとうまくいきます! – Chuck

+0

はあなたがブロックされていないように見えます。 – yesIcan

関連する問題