Итерация через массив JSON с усами
Я новичок в Усы, пожалуйста, медведь со мной:)
У меня есть массив в моем JSON
"prop":{"brands":["nike","adidas","puma"]}
если у меня есть шаблон, подобный этому
{{#prop}}
<b>{{brands}}</b>
{{prop}}
и я хочу получить что-то вроде:
<b>nike</b>
<b>adidas</b>
<b>puma</b>
Я понимаю, что элементы в массиве не являются парами ключ-значение хеша, однако мне интересно, есть ли усы в любом случае, что я могу перебирать элементы.
Спасибо!
Ответы
Ответ 1
усы безболезненны, поэтому писать свою собственную итерацию/петлю в ней невозможно. Однако легко конвертировать JSON. Например:
var json = '{"prop":{"brands":["nike","adidas","puma"]}}';
var obj = JSON.parse(json);
var data = {brands: obj.prop['brands'].map(function(x){ return {name: x}; })};
Дает вам переменную data
, которая будет работать с шаблоном:
{{#brands}}
<b>{{name}}</b>
{{/brands}}
Ответ 2
Вот рабочая скрипка: http://jsfiddle.net/Qa4UX/
В принципе, вам нужно перебирать массив брендов.
Поскольку ваш массив является сырым и не имеет объектов внутри, вам нужно ссылаться на каждую строку следующим образом:
{{#props}}
<ul>
{{#brands}}
<li>
{{#.}}
<b>{{.}}</b>
{{/.}}
</li>
{{/brands}}
</ul>
{{/props}}
Здесь вы также можете найти еще много примеров: https://github.com/janl/mustache.js#mustachejs---logic-less-mustache-templates-with-javascript
Ответ 3
Это работает
{{#json.props.brands}}
<h1>{{.}}</h1>
{{/json.props.brands}}
{{.}} При переходе по массиву строк a. может использоваться для ссылки на текущий элемент в списке.