参考地址:https://stackoverflow.com/questions/34298133/angular-cookies/36093800
@Component({
selector: 'cookie-consent',
template: cookieconsent_html,
styles: [cookieconsent_css]
})
export class CookieConsent {
private isConsented: boolean = false; constructor() {
this.isConsented = this.getCookie(COOKIE_CONSENT) === '';
} private getCookie(name: string) {
let ca: Array<string> = document.cookie.split(';');
let caLen: number = ca.length;
let cookieName = `${name}=`;
let c: string; for (let i: number = ; i < caLen; i += ) {
c = ca[i].replace(/^\s+/g, '');
if (c.indexOf(cookieName) == ) {
return c.substring(cookieName.length, c.length);
}
}
return '';
} private deleteCookie(name) {
this.setCookie(name, '', -);
} private setCookie(name: string, value: string, expireDays: number, path: string = '') {
let d:Date = new Date();
d.setTime(d.getTime() + expireDays * * * * );
let expires:string = `expires=${d.toUTCString()}`;
let cpath:string = path ? `; path=${path}` : '';
document.cookie = `${name}=${value}; ${expires}${cpath}`;
} private consent(isConsent: boolean, e: any) {
if (!isConsent) {
return this.isConsented;
} else if (isConsent) {
this.setCookie(COOKIE_CONSENT, '', COOKIE_CONSENT_EXPIRE_DAYS);
this.isConsented = true;
e.preventDefault();
}
}
}