В свое время использовал два варианта с хранением json данных, в переменной
var storage = JSON.parse(`{
"id": "4",
"name": "Товар 4",
"price": "2500"
}'
И в json файлике.
В варианте с переменной рендерил js, искал по дата id и запихивал контент уже из строк.
В варианте с json файликом использовал
underscore.js рендерил json и благодоря библиотеке вставлял уже циклом в js
<% _.each(goods, function(good) { %>
<div class="basket-item js-cart-item" data-id="<%= good.id %>">
<div class="basket_item__image-link"></div>
<div class="basket-item__main-title"><%- good.name %></div>
<div class="page__basket-line"></div>
<div class="price_theme_basket-item"><span class="price__item"><%= good.price %></span> руб.</div>
<div class="cart-clicker">
<div class="input-quantity__button input-quantity__inc js-change-count"
title="Увеличить на 1"
data-id="<%= good.id %>"
data-delta="1">
</div>
<div class="input-quantity__val">
<input class="input-quantity__val-input js-count" type="text" value="<%= good.count %>">
</div>
<div class="input-quantity__button input-quantity__dec js-change-count"
title="Уменьшить на 1"
data-id="<%= good.id %>"
data-delta="-1">
</div>
</div>
<div class="page__basket_min-line"></div>
<div class="basket-item__main-delete js-remove-from-cart" data-id="<%= good.id %>">Убрать</div>
</div>
<% }); %>
'use strict';
// Модуль каталога
var catalog = (function($) {
// Инициализация модуля
function init() {
_render();
}
function init_six() {
_renders();
}
// Рендерим каталог
function _render() {
var template = _.template($('#catalog-template').html()),
$goods = $('#js-catalogue-list');
$.getJSON('data/goods.json', function(data) {
$goods.html(template({goods: data}));
});
}
// Экспортируем наружу
return {
init: init,
init_six: init_six
}
function _renders() {
var template = _.template($('#catalog-template').html()),
$goods = $('#js-load-catalogue');
$.getJSON('data/six.json', function(data) {
$goods.html(template({goods: data}));
});
}
})(jQuery);
Исходя из этого встает вопрос, какой метод будет лучше и проще что бы хранить данные и доставать их?