zl程序教程

您现在的位置是:首页 >  前端

当前栏目

[Angular] Saving draft form into Cookies

Angular Form INTO cookies
2023-09-14 09:00:47 时间
npm install cookies-js --save

 

import {Component, OnInit} from '@angular/core';
import {FormGroup, FormBuilder, Validators} from "@angular/forms";
import * as Cookies from 'cookies-js';

@Component({
    selector: 'create-lesson',
    templateUrl: './create-lesson.component.html',
    styleUrls: ['./create-lesson.component.css']
})
export class CreateLessonComponent implements OnInit {

    private static readonly DRAFT_COOKIE = 'create-lesson-draft';

    form: FormGroup;

    constructor(private fb: FormBuilder) {

        this.form = this.fb.group({
            description: ['',Validators.required],
            url: ['',Validators.required],
            longDescription: ['']
        });

    }

    ngOnInit() {

        const draft = Cookies.get(CreateLessonComponent.DRAFT_COOKIE);

        if (draft) {
            this.form.setValue(JSON.parse(draft));
        }

        this.form.valueChanges
            .filter(() => this.form.valid)
            .do(validValue => Cookies.set(
                CreateLessonComponent.DRAFT_COOKIE,
                JSON.stringify(validValue)) )
            .subscribe();

    }

}