Итак, у меня есть коллекция метеоров. Каждый объект/документ в этой коллекции может иметь неизвестную структуру. То есть, я не знаю названия каждого свойства, ни сколько его есть, до времени выполнения.Как пронести по неизвестному объекту в шаблон Meteor Spacebars?
По сути, каждый объект в коллекции создается из произвольных данных, которые люди предоставляют через мою начальную страницу (через загрузку CSV, которая отлично работает). Поэтому я не инициализирую коллекцию при запуске Meteor.
Теперь я хотел бы создать таблицу в моем HTML-страницы, что делает коллекцию, но без меня заранее определяя, как требуется много столбцов и то, что их имена.
Как я могу установить число и имена столбцов в моем шаблоне Spacebars/HTML динамически?
Так вот, насколько я получил на стороне шаблона:
<table>
{{#each rows}}
{{> row}}
{{/each}}
</table>
... и шаблон:
<template name="row">
{{#if header}} <!-- header is explicitly set, so this is fine -->
<th>
{{#each WHAT?}}
<td>{{???}}</td>
{{/each}}
</th>
{{else}}
<tr>
{{#each WHAT?}}
<td>{{???}}</td>
{{/each}}
</tr>
{{/if}}
</template>
Я пытался найти какой-либо ссылки в Spacebars и Blaze документации, но все примеры всегда требуют, чтобы я знал имена столбцов из get-go.
Любые идеи?
Edit: Вот пример объекта, который я явно идентифицировать в качестве заголовка с помощью свойства заголовка:
... и "строки" выглядит следующим образом:
Таким образом, я соврал, по-видимому, тем, что мои имена свойств/столбцов всегда являются номерами индексов.
Чтобы ответить на другой вопрос: После определения набора данных (совокупность) все объекты имеют одинаковое количество свойств (например, представляют таблицу csv, откуда всегда будут поступать мои данные).
Вы правы, говоря, вы должны знать структуру данных, чтобы использовать каждый из контекста данных. Вы можете, конечно, заранее разобрать в структурированный массив или использовать помощника внутри каждого цикла ('{{#each doEach (WHAT)}}'), и помощник вернет ваш структурированный массив. – below9k
Имеются ли данные сбора в разных полях, но плоская структура? Можете ли вы показать нам пример документа? –
Я добавил примеры данных для иллюстрации. – batjko