Это может показаться глупым вопросом, но я нигде не могу найти ответа.
Я нажимаю на этот веб-API, который возвращает массив объектов в формате JSON:
В документации Handlebars показан следующий пример:
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
В контексте:
{
people: [
"Yehuda Katz",
"Alan Johnson",
"Charles Jolley"
]
}
В моем случае у меня нет имени для массива, это просто корневой объект ответа. Я безуспешно пробовал использовать {{#each}}
.
Первое использование руля ... Что мне не хватает?
ОБНОВИТЬ
Вот упрощенная скрипка, чтобы показать вам, о чем я прошу: http://jsfiddle.net/KPCh4/2/
Требуется ли для дескрипторов, чтобы переменная контекста была объектом, а не массивом?
arrays
loops
each
handlebars.js
Emzero
источник
источник
Ответы:
Вы можете перейти
this
к каждому блоку. Смотрите здесь: http://jsfiddle.net/yR7TZ/1/источник
{{#each people}}
внутри внутреннего цикла{{#each this}}
? Нравится{{people@index}}
Эта скрипка имеет как
each
прямой, так и json. http://jsfiddle.net/streethawk707/a9ssja22/ .Ниже приведены два способа перебора массива. Один из них с прямой передачей json, а другой - именование массива json при передаче держателю контента.
Пример 1. В приведенном ниже примере напрямую вызывается json-ключ (данные) внутри переменной small_data.
В html используйте следующий код:
Следующее может быть помещено в заголовок или тело html:
Нижеследующий документ готов:
Ниже приведен json:
Наконец, прикрепите json к держателю содержимого:
Eg2: Итерация с использованием каждого.
Рассмотрим приведенный ниже файл json.
При передаче json держателю содержимого просто назовите его так:
А шаблон выглядит так:
источник
Я имел ввиду в
template()
звонке ..Вам просто нужно передать результаты как объект. Так что вместо звонка
делать
и используйте
{{#each apidata}}
в своем коде шаблонадемо на http://jsfiddle.net/KPCh4/4/
( удален оставшийся
if
код, который разбился )источник
{{#each this}}
- это правильная форма.Handlebars могут использовать массив в качестве контекста. Вы можете использовать
.
как корень данных. Таким образом, вы можете перебирать данные массива с помощью{{#each .}}
.источник
Использование
this
и{{this}}
. См. Код ниже в node.js:Вывод журнала консоли:
источник
У меня была аналогичная проблема, я получал весь объект,
this
но при этом отображалось значение#each
.Решение: я реструктурирую свой массив объектов следующим образом:
а затем в файле шаблона:
источник