I've been looking all around for Angular cookies but I haven't been able to find how to implement cookies management in Angular. Is there any way to manage cookies (like $cookie in AngularJS)?

推荐答案

我结束了自己的功能创建:

@Component({
    selector: 'cookie-consent',
    template: cookieconsent_html,
    styles: [cookieconsent_css]
})
export class CookieConsent {
    private isConsented: boolean = false;

    constructor() {
        this.isConsented = this.getCookie(COOKIE_CONSENT) === '1';
    }

    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 = 0; i < caLen; i += 1) {
            c = ca[i].replace(/^\s+/g, '');
            if (c.indexOf(cookieName) == 0) {
                return c.substring(cookieName.length, c.length);
            }
        }
        return '';
    }

    private deleteCookie(name) {
        this.setCookie(name, '', -1);
    }

    private setCookie(name: string, value: string, expireDays: number, path: string = '') {
        let d:Date = new Date();
        d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);
        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, '1', COOKIE_CONSENT_EXPIRE_DAYS);
            this.isConsented = true;
            e.preventDefault();
        }
    }
}

Typescript相关问答推荐

有没有办法适当缩小类型?

如何防止TypeScript允许重新分配NTFS?

TypeScrip原始字符串没有方法

如何在Reaction路由v6.4加载器和操作中获得Auth0访问令牌?

在TypeScript中扩展重载方法时出现问题

棱角分明-什么是...接口类型<;T>;扩展函数{new(...args:any[]):t;}...卑鄙?

如果判断空值,则基本类型Gaurd不起作用

是否将Angular *ngFor和*ngIf迁移到新的v17语法?

如何从上传文件中删除预览文件图标?

创建一个函数,该函数返回一个行为方式与传入函数相同的函数

使用RXJS获取数据的3种不同REST API

完全在类型系统中构建的东西意味着什么?

可以用任意类型实例化,该类型可能与

Typescript循环函数引用

为什么TS条件返回要求不明确的强制转换而不是精确的强制转换?

为什么过滤器不改变可能的类型?

TypeScript是否不知道其他函数内部的类型判断?

带动态键的 TS 功能

如何在由函数参数推断的记录类型中具有多个对象字段类型

我是否应该在 Next.js 中的服务器组件中获取秘密数据的所有函数中使用使用服务器?