поле формы хранения данных в локальном хранилище не работает - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь добавить поле formGroup для хранения в локальном хранилище, чтобы я мог получить его на другой странице. Мой код

.ts файл

   var u8Image  = b64ToUint8Array(b64Image);
const file = new File([u8Image], rString + '.jpg', { type: "image/jpeg", lastModified: Date.now() });
const clothsize = this.sizeForm.value.clothsize;
const quantity = this.sizeForm.value.quantity;
 var formData = new FormData();
 formData.append("image", file);
 formData.append('clothsize', clothsize);
 formData.append('quantity', quantity);
 formData.append('design', this.fileDesign);
 this.service.addToCart(formData)
 console.log('success')

service.ts is

  getCart(){
const formData = localStorage.getItem('formData');
return formData? JSON.parse(formData) : [];


 }

  addToCart(data) {
    const formData: Data[] = this.getCart();
    if (!formData) {
      this.setTodosIntoStore([data]);
    } else {
      formData.push(data);
      this.setTodosIntoStore(formData);
    }

}

setTodosIntoStore(formData: Data[]) {
  localStorage.setItem('formData', JSON.stringify(formData));
}

Я получил пустое поле в локальном хранилище. Есть ли способ сохранить реактивные данные группы форм в локальном хранилище?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

Вместо преобразования formData в JSON:

localStorage.setItem('formData', JSON.stringify(formData));

Попробуйте создать объект из formData, а затем преобразовать его в Json следующим образом:

localStorage.setItem('formData', JSON.stringify(Object.fromEntries(formData.entries())));

Вы сказали fromEntries не поддерживается, затем попробуйте:

let object = {};
formData.forEach(function(value, key){
    object[key] = value;
});
let json = JSON.stringify(object);

localStorage.setItem('formData', json);
0 голосов
/ 23 февраля 2020

В качестве альтернативы можно сначала сохранить данные реактивной формы в локальном хранилище, а затем создать из них данные формы, получая их из локального хранилища.

localStorage.setItem ('data') , JSON .stringify (this.sizeForm.value));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...