AngularJSの標準の$cookiesでは有効期限(expires)を設定できないので、代わりにjquery.cookieを使って設定します。
index.html
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
jquery.cookieのラッパークラスを作りました。これで、[モジュール名].Cookie.getで使用できるようになります。
Cookie.ts
/// <reference path="../../reference.ts" />
module [モジュール名] {
/**
* jquryを使ったCookieラッパークラス
*/
export class Cookie {
/**
* 取得する
* @param key キー
* @returns string 値
*/
public static get(key:string):string {
return $.cookie(key);
}
/**
* 設定する
* @param key キー
* @param value 値
* @param expire 有効期間(日数)
*/
public static set(key:string, value:string, expire:number = 0):void {
$.cookie(key, value, { expires: expire });
}
}
}
使用例としてはこんな感じです
app.ts
var locale = [モジュール名].Cookie.get("locale");
if(locale == undefined) {
locale = "ja_JP";
[モジュール名].Cookie.set("locale", locale, 36500);
}
※[モジュール名]は適宜変更してください