Cookie の使い方について

485 views
Skip to first unread message

nagaito...@gmail.com

unread,
Jun 14, 2013, 10:22:24 AM6/14/13
to angula...@googlegroups.com
永井です。こんばんは。

anglurjsでcookieを扱ってみようとチュートリアルstep2(http://docs.angularjs.org/tutorial/step_02)をベースに

angular.module('MyAppModule', ['ngCookies']);

'use strict';

/* Controllers */
function PhoneListCtrl($scope, $cookies) {

$cookies.NameOfMyCookie = "Setting a value"; // 追加コード
    alert($cookies.NameOfMyCookie);


  $scope.phones = [
    {"name": "Nexus S",
     "snippet": "Fast just got faster with Nexus S."},
    {"name": "Motorola XOOM™ with Wi-Fi",
     "snippet": "The Next, Next Generation tablet."},
    {"name": "MOTOROLA XOOM™",
     "snippet": "The Next, Next Generation tablet."}
  ];
}


というコードを書いてみたのですが、chromeにて実行してみると

Error: Unknown provider: $cookiesProvider <- $cookies
    at Error (<anonymous>)
    at file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2696:15
    at Object.getService [as get] (file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2824:39)
    at file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2701:45
    at getService (file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2824:39)
    at invoke (file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2842:13)
    at Object.instantiate (file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:2874:23)
    at file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:4759:24
    at file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:4338:17
    at forEach (file://localhost/Users/nagaitomoyuki/Desktop/angular-phonecat/app/lib/angular/angular.js:138:20) 

 というエラーが起きてしまいます。
 おそらく1行コードをかけば解決というレベルの話だと思うのですが
 原因はなにかわかる方いらっしゃらないでしょうか?

Kenichi KANAI

unread,
Jun 16, 2013, 12:08:09 AM6/16/13
to angula...@googlegroups.com
金井です。

以下で試してみました!
(サイトの都合だと思いますが)エラーを吐きつつも、Cookieにsetはされていました。

恐らくですが、cookies.js を呼んであげてないのが原因なのかな?と思います。

ngCookie や ngResource は angularjs とは別途呼んであげる必要があります(だったと思います)。

違うよーって方いらっしゃいましたら、ボクにも教えてください!!



2013年6月14日 23:22 <nagaito...@gmail.com>:

--
このメールは Google グループのグループ「AngularJS Japan User Group」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、angularjs-jp...@googlegroups.com にメールを送信します。
このグループに投稿するには、angula...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/angularjs-jp/85ffcc3b-eb98-4fcf-947d-e50e5e71e578%40googlegroups.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 



--
--------------------------------
金井 健一
can.i....@gmail.com

Web先端技術味見部副部長
https://www.facebook.com/ajimibu

AngularJS Japan User Group 管理人
https://groups.google.com/forum/#!forum/angularjs-jp

永井友之

unread,
Jun 17, 2013, 3:39:23 AM6/17/13
to angula...@googlegroups.com
金井さん

永井です。返信ありがとうございます。

このコードをカスタマイズしたら動きました。
おっしゃるとおり cookies.js を読んでなかったのが原因だったようです。
(angular.min.jsの中に入っているものだと思ってました)

ありがとうございます!!





2013年6月16日 13:08 Kenichi KANAI <can.i....@gmail.com>:
このトピックの登録を解除するには、https://groups.google.com/d/topic/angularjs-jp/yqdQq9cOFl0/unsubscribe にアクセスします。このグループから退会し、グループのすべてのトピックの登録を解除するには、angularjs-jp...@googlegroups.com にメールを送信します。
このグループに投稿するには、angula...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/angularjs-jp/CAKGNka4B4e%3DGPb6LfQik70L-Av2pyXNebMYe7Bu4A1rSgn%3DhjQ%40mail.gmail.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

nagaito...@gmail.com

unread,
Jun 19, 2013, 3:22:19 AM6/19/13
to angula...@googlegroups.com
永井です。

Cookie の質問をもう一つさせてください。

$cookies に値を入れて、ページ遷移をさせると入っていた値がなくなってしまうようなのですが
なにかパラメータを設定しないといけないのでしょうか?

以下が再現コードです。
にビューも含めた一式が上がっています。


var module = angular.module('myApp', [ 'ngCookies' ]);

function indexCtrl($scope, $cookies){

    $cookies.cookieValue = 'abcde';
    alert($cookies.cookieValue); // # abcde とでる
}

function nextCtrl($scope, $cookies){

    alert($cookies.cookieValue); // # undefined とでる。abcde と出したい
    $scope.cookieValue = $cookies.cookieValue;
}



2013年6月17日月曜日 16時39分23秒 UTC+9 永井友之:


2013年6月14日 23:22 <nagaito...@gmail.com>:
このグループから退会し、メールの受信を停止するには、angularjs-jp+unsubscribe@googlegroups.com にメールを送信します。

このグループに投稿するには、angularjs-jp@googlegroups.com にメールを送信してください。

このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/angularjs-jp/85ffcc3b-eb98-4fcf-947d-e50e5e71e578%40googlegroups.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 



--
--------------------------------
金井 健一
can.i....@gmail.com

Web先端技術味見部副部長
https://www.facebook.com/ajimibu

AngularJS Japan User Group 管理人
https://groups.google.com/forum/#!forum/angularjs-jp

--
このメールは Google グループのグループ「AngularJS Japan User Group」の登録者に送られています。
このトピックの登録を解除するには、https://groups.google.com/d/topic/angularjs-jp/yqdQq9cOFl0/unsubscribe にアクセスします。このグループから退会し、グループのすべてのトピックの登録を解除するには、angularjs-jp+unsubscribe@googlegroups.com にメールを送信します。
このグループに投稿するには、angularjs-jp@googlegroups.com にメールを送信してください。

Kenichi KANAI

unread,
Jun 19, 2013, 10:20:42 AM6/19/13
to angula...@googlegroups.com
金井です。

試してみましたが、ちゃんと受け取れてましたよ!

が、そのままファイルを開いた状態だと Cookieに値が入っていないように見えました。
fle://xxxx の状態だと確かにundefined ですね。

localhostを立てて確認したら受け取れたのが確認できました。
Cookie 操作するときは localhost 立てないとセットされないみたいですね。

なのでコードに問題はないと思います。環境面かなと思います。

と、検討違いだったらご指摘ください。





2013年6月19日 16:22 <nagaito...@gmail.com>:
このグループから退会し、メールの受信を停止するには、angularjs-jp...@googlegroups.com にメールを送信します。
このグループに投稿するには、angula...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/angularjs-jp/00aaf3dd-6c01-4385-888b-cc7ec6a21f24%40googlegroups.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

永井友之

unread,
Jun 20, 2013, 12:00:14 AM6/20/13
to angula...@googlegroups.com
金井さん

永井です。ご指導ありがとうございます。

file://xxxx だと値は消えてしまって、サーバ経由だと大丈夫ですね。
そうゆうものとは知らなかったのです。

あと
$cookies って KeyValue なので、連想配列とか入れたい場合は $cookieStore を使わないとダメみたいですね。
勉強になりました。


ありがとうございます。


2013年6月19日 16:22 <nagaito...@gmail.com>:
このトピックの登録を解除するには、https://groups.google.com/d/topic/angularjs-jp/yqdQq9cOFl0/unsubscribe にアクセスします。このグループから退会し、グループのすべてのトピックの登録を解除するには、angularjs-jp...@googlegroups.com にメールを送信します。
このグループに投稿するには、angula...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/angularjs-jp/00aaf3dd-6c01-4385-888b-cc7ec6a21f24%40googlegroups.com にアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

Reply all
Reply to author
Forward
0 new messages