Как заставить проект angular с localStorage работать в каждом браузере? - PullRequest
0 голосов
/ 27 мая 2020

Я работаю над сайтом e-com, на котором есть компонент списка корзин, я реализовал его с помощью localStorage следующим образом:

 export class CheckOutHomePageComponent implements OnInit {

currentArr:string;
myCart:string[] = [];
prices:any;
constructor(
private dataTransmit: DataTransmitService,
private itemsService: ItemsService,
) { }

ngOnInit(): void {
this.dataTransmit.currentItemId.subscribe(itemID => {
  this.myCart = [];
  this.myCart = this.addToCart(itemID);
  for(let i of this.myCart){
    console.log("myCart : "+i);
  }
});
}

addToCart(itemID){
let isAdded = false;
let itemIdStr: string;
let currentArrA:string[] = [];
this.currentArr = localStorage.getItem('currentArray');
itemIdStr = itemID.toString();
currentArrA = this.currentArr.split(",");
for(let i of currentArrA){
  if(i===itemIdStr){
    isAdded = true
  }
}
if(!isAdded){
  localStorage.setItem("currentArray", this.currentArr+","+itemIdStr);
}
this.currentArr = localStorage.getItem('currentArray');
// console.log(this.currentArr);
currentArrA = this.currentArr.split(",");
return currentArrA;
}

clearList(){
localStorage.setItem("currentArray","");
console.log("cleared..."+localStorage.getItem('currentArray'));
this.myCart = [];
}
}
* 1003 журнал массива myCart, я отправил его своему другу, и он не работает у него в обоих браузерах, я пробовал его с firefox, и у меня это тоже не сработало, я предполагаю, что функция localStorage нужна какая то авторизация из браузера? как решить эту проблему?

1 Ответ

2 голосов
/ 27 мая 2020

localStorage может обрабатывать только строковые пары ключ / значение.

localStorage.setItem('currentArray', JSON.stringify(this.currentArr));
// and:
const o = localStorage.getItem('currentArray');
if (o) {
   this.currentArr = JSON.parse(o);
}

Нет необходимости в дополнительной аутентификации.

См .: могу ли я использовать localStorage .

И: MDN localStorage

...