Как добавить один и тот же продукт с разными спецификациями в AngularJS - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть список товаров и корзина.Допустим, у меня есть продукт, похожий на этот:

   {
     "ProductId" : "1",
     "ProductName" : "Knee Caps",
     "Specifications" : {
           "Size" : ["S","M","L","XL","XXL"],
           "GrossWeight" : "200gm each",
           "Colour" : ["Beige","Grey"]
          },
     "SellingPrice" : 80
}

То, что я до сих пор делал, таково:

if(localStorage.getItem("productTable") != null)
{
  productTable = JSON.parse(localStorage["productTable"]);
  productTable[Id]={ProductId : Id, Colour : selectedColour, Size : selectedSize, QuantityAdded : selectedQuantity};
 }
 else {
   productTable[Id]={ProductId : Id, Colour : selectedColour, Size : selectedSize, QuantityAdded : selectedQuantity};                    
 }

Что делает этот код, так это добавляет продукт на первыйвремя, но если я хочу один и тот же продукт с разными размерами и цветами , он заменяет оригинальный.Теперь я знаю, что такой подход не совсем корректен.Может кто-нибудь, пожалуйста, помогите мне выяснить, как я могу добавить один и тот же продукт с другими характеристиками?

1 Ответ

0 голосов
/ 20 февраля 2019

Из того, что я понял, вы хотели сохранить свойство Specifications, если оно существует.Я надеюсь, что это сработает.Не стесняйтесь, дайте мне знать, если вы получите какую-то ошибку.Надеюсь, вы можете получить представление о том, что я делаю

if(localStorage.getItem("productTable") != null)
{
  productTable = JSON.parse(localStorage["productTable"]);
  productTable[Id]={
      ProductId : Id,
      Colour : selectedColour, 
      Size : selectedSize,
      Specifications : checkSpecification(productTable[Id].Specifications,size,weight,color)
      QuantityAdded : selectedQuantity
  };
}
 else {
   productTable[Id]={ProductId : Id, Colour : selectedColour, Size : selectedSize, QuantityAdded : selectedQuantity};                    
}

function checkSpecification(obj,size,weight,color){
  if(obj){
     obj['Size'].push(size);
     obj['GrossWeight'] = weight || '';
     obj['Colour'].push(color);

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