angular2-cookie
Implementation of Angular 1.x $cookies service to Angular 2 v1.1.1
Table of contents:
Get Started
Installation
You can install this package locally with npm.
npm install angular2-cookie --save
After installing the library, you should include it in the index.html
file.
<head>
<base href="/">
<title>My Very Cool App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2-cookie/bundles/angular2-cookie.min.js"></script>
<script>
System.config({
packages: {
"app": {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/main')
.then(null, console.error.bind(console));
</script>
</head>
Usage
CookieService class is an injectable service with angular @Injectable()
decorator. Therefore, it needs to be registered in the providers array (encouraged way).
Then, it will be available in the constructor of the component class.
import {Component} from 'angular2/core';
import {CookieService} from 'angular2-cookie/core';
@Component({
selector: 'my-very-cool-app',
template: '<h1>My Angular2 App with Cookies</h1>',
providers: [CookieService]
})
export class AppComponent {
constructor(private _cookieService:CookieService){}
getCookie(key: string){
return this._cookieService.get(key);
}
}
CookieService
There are 7 methods available in the CookieService
(6 standard methods from Angular 1 and 1 extra removeAll()
method for convenience)
get()
Returns the value of given cookie key.
get(key: string): string;
getObject()
Returns the deserialized value of given cookie key.
getObject(key: string): Object;
getAll()
Returns a key value object with all the cookies.
getAll(): any;
put()
Sets a value for given cookie key.
put(key: string, value: string, options?: CookieOptionsArgs): void;
putObject()
Serializes and sets a value for given cookie key.
putObject(key: string, value: Object, options?: CookieOptionsArgs): void;
remove()
Remove given cookie.
remove(key: string, options?: CookieOptionsArgs): void;
removeAll()
Remove all cookies.
removeAll(): void;
Options
Options object should be a type of CookieOptionsArgs
interface. The object may have following properties:
- path - {string} - The cookie will be available only for this path and its sub-paths. By default, this is the URL that appears in your
<base>
tag. - domain - {string} - The cookie will be available only for this domain and its sub-domains. For security reasons the user agent will not accept the cookie if the current domain is not a sub-domain of this domain or equal to it.
- expires - {string|Date} - String of the form "Wdy, DD Mon YYYY HH:MM:SS GMT" or a Date object indicating the exact date/time this cookie will expire.
- secure - {boolean} - If
true
, then the cookie will only be available through a secured connection.
Overriding default options globally
CookieService
can use ANGULAR2_COOKIES_PROVIDERS
to provide default options. Thus the default options can be altered by overriding the necessary class.
See Angular dependency injection guide for more information on the topic.
import {provide} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {App} from './myapp';
class MyOptions extends BaseCookieOptions {
path: string = '/my/path/';
}
bootstrap(App, [ANGULAR2_COOKIES_PROVIDERS, provide(CookieOptions, {useClass: MyOptions})]);
Note
The build process and the file structure of this repository has respectively modeled after the awesome angular2-google-maps project of Sebastian Müller.