Можно ли отображать различные шаблоны "хитов" на основе элементов, возвращаемых из API?Например, предположим, что у меня есть два шаблона.
const _FooTemplate = `
<table class="table table-striped table-hover table-responsive">
<thead>
<tr>
<th>Part Number</th>
<th>Description</th>
<th>Available Quantity</th>
</tr>
</thead>
<tbody>
{{#hits}}
<tr>
<td style="white-space:nowrap"><a href="{{ url }}">{{ code }}</a></td>
<td>{{ description }}</td>
<td>{{ quantityAvailable }}</td>
</tr>
{{/hits}}
</tbody>
</table>
`;
const _BarTemplate = `
<table class="table table-striped table-hover table-responsive">
<thead>
<tr>
<th>Part Number</th>
<th>Description</th>
<th>Available Quantity</th>
<th>EXTRA COLUMN - 1</th>
<th>EXTRA COLUMN - 2</th>
</tr>
</thead>
<tbody>
{{#hits}}
<tr>
<td style="white-space:nowrap"><a href="https://www.lyntron.com/{{ url }}">{{ code }}</a></td>
<td>{{ description }}</td>
<td>{{ quantityAvailable }}</td>
<td>{{ EXTRA_DATA_1 }}</td>
<td>{{ EXTRA_DATA_2 }}</td>
</tr>
{{/hits}}
</tbody>
</table>
`;
И мой виджет поиска выглядит следующим образом ...
search.addWidget(
instantsearch.widgets.hits({
container: '#hits',
templates: {
empty: 'No results',
allItems: (function($hitsObject) {
return templateFactory($hitsObject);
})
},
cssClasses: {
item: 'col-lg-12 col-md-12 col-sm-12'
}
})
);
Моя фабрика шаблонов имеет логику, чтобы определить,m вытаскивая _FooTemplate или _BarTemplate.
function templateFactory($hits) {
//Logic to determine which template to return. For now hardcode one.
return _FooTemplate;
}
Когда я использую этот подход, мои попадания в div на стороне HTML экранируются и не корректируются при рендеринге.Как я могу получить рендеринг?Я где-то экранирую HTML и не должен быть?
В настоящее время получаю это для результата ...
И я желаю этого для результата,Правильно вынесено.