Проблема с localStorage

373
05 июня 2017, 22:03

Доброй ночи. Так уж получилось, что мне необходимо написать интернет-магазин, и я застрял на моменте написания логики для корзины, которая довольно проста, на первый взгляд: нажимаем на кнопку под нужным товаром, его данные (data-name, data-price, etc) записываются в объект, который, в свою очередь, записывается в массив shoppingCart, и хранится в localStorage. Т.е. при добавлении различных товаров они просто в виде объектов записываются в массив. Если все производить с одной страницы - проблемы не возникает, но сайт, по задумке, является многостраничным, и вот как раз когда я нажимаю "Добавить товар" с другой страницы, то массив в localStorage переписывается, т.е. ранее добавленные данные с других страниц удаляются. Собственно, был бы рад услышать мысли по этому поводу. Спасибо. Объект корзины и его методы:

var shoppingCart = {};
shoppingCart.cart = [];
shoppingCart.Item = function(name, price, count, category, image) {
  this.name = name;
  this.price = price;
  this.count = count;
  this.category = category;
  this.image = image;
};
shoppingCart.addItemToCart = function (name, price, count, category, image) {
  for (let i = 0; i < this.cart.length; i++) {
    if (this.cart[i].name === name) {
      this.cart[i].count += count;
      this.saveCart();
      return;
    }
  }
  var item = new this.Item(name, price, count, category, image);
  this.cart.push(item);
  this.saveCart();
};
shoppingCart.saveCart = function () {
  window.localStorage.setItem('shoppingCart', JSON.stringify(this.cart));
};
shoppingCart.loadCart = function () {
  this.cart = JSON.parse(localStorage.getItem('shoppingCart'));
}; 

jQuery:

$(".article-to-basket").click(function() {
  let name = $(this).attr("data-name");
  let price = $(this).attr("data-price");
  let category = $(this).attr("data-category");
  let image = $(this).attr("data-image");
  shoppingCart.addItemToCart(name, price, 1, category, image);
});
READ ALSO
Ckeditor для редактирования html кода

Ckeditor для редактирования html кода

Всем приветПодскажите пожалуйста где найти редактор html кода для вставки в сайт

322
Не работает подстветка кода в codemirror

Не работает подстветка кода в codemirror

Использую библиотеку codemirror

309
Не выполняется клик по html-елементу, JS [требует правки]

Не выполняется клик по html-елементу, JS [требует правки]

Пишу плагин для Chrome, нужно симулировать клик по кнопке (тег a):

303
Как сделать напротив текста ввода в input крестик, при нажатии на который контенты бы сразу удалялся?

Как сделать напротив текста ввода в input крестик, при нажатии на который контенты бы сразу удалялся?

Как сделать напротив текста ввода в input крестик, при нажатии на который контенты бы сразу удалялся?

546