当我尝试填充此文字模板时,为什么会得到未定义?

时间:2019-02-18 14:47:20

标签: javascript arrays local-storage literals

我设置了一个本地存储项目,一个更精确的数组。

然后我得到了它并尝试填充我的文字模板,但是我得到了一个未定义的

  

未定义:1 GET http://localhost/undefined 404(未找到)   未定义:1

这是我的代码:

var rawRelatedProductCategoryArray = localStorage.getItem('relatedCategoryProductsSelected');

var parsedRelatedProductArray = ('rawRelatedProductCategoryArray', JSON.parse(rawRelatedProductCategoryArray));

console.log(parsedRelatedProductArray); // on this i get the result of my array

document.getElementById("relatedProducts").innerHTML = `${parsedRelatedProductArray.map(relatedProductsTemplate).join('')}`

这是我要在其中放入数组数据的模板:

function relatedProductsTemplate(relatedProduct) {
  return `
   <div class="relatedDiv">
    <div class="item mb-0 text-center ">
      <div>
        <div class="post-prev-img">
          <a href="#"><img src="${relatedProduct.image}" alt="img"></a>
        </div>
        <div class="post-prev-title mb-5">
          <h3><a class="font-norm a-inv" href="shop-single.html">${relatedProduct.dataProduct}</a></h3>
        </div>
        <div class="shop-price-cont">
          <strong>${relatedProduct.price}</strong>
        </div>
      </div>
    </div>
  </div>
  `
}

1 个答案:

答案 0 :(得分:1)

我发现我做错了:

问题是因为数组是嵌套的。

所以我确实是这样的:

  var arrayNesting = parsedRelatedProductArray[0];

然后我将var传递给了这样的文字:

  document.getElementById("relatedProducts").innerHTML =
    `${arrayNesting.map(relatedProductsTemplate).join('')}`