Нокаут.JS containerless "foreach" не работает
этот код выдает ошибку (в Chrome): "не удается найти закрывающий тег комментария для соответствия: ko foreach: MyPlans":
<table>
<!-- ko foreach: MyPlans -->
<tr>
<td>Test</td>
</tr>
<!-- /ko -->
</table>
Если я использую список вместо этого, все работает:
<ul>
<!-- ko foreach: MyPlans -->
<li>
Test
</li>
<!-- /ko -->
</ul>
Я хотел бы использовать бесконтейнерный foreach с таблицей. Я что-то делаю не так? Это баг?
Richard
1 ответ:
это связано с тем, что браузеры вставить tbody
теги автоматически, что создает несоответствие в комментариях. Вывод рендеринга будет выглядеть так:
<table>
<!-- ko foreach: MyPlans -->
<tbody>
<tr>
<td>Test</td>
</tr>
<!-- /ko -->
</tbody>
</table>
Стив действительно приложил некоторые усилия, пытаясь исправить несоответствующие теги в KO, но самое простое, что вам нужно сделать, это либо добавить tbody
самостоятельно или добавить tbody
и положите на него свою привязку.
<table>
<tbody data-bind="foreach: MyPlans">
<tr>
<td>Test</td>
</tr>
</tbody>
</table>
это законно для таблицы, чтобы иметь несколько tbody
теги, если это необходимо.