Альтернативный стиль строки с привязкой $index
Мне трудно получить класс css альтернативной строки, примененный к шаблону нокаута с контекстом привязки foreach. Я использую нокаут 2.1 с доступной переменной контекста $index
.
Это то, что запутывает:
Мой шаблон
<li class="row" data-bind="css: { alt: $index%2 }"></li>
приводит к тому, что классы alt
не применяются:
<li class="row" data-bind="text: $index"></li>
работает правильно и отображает номер строки.
Ответы
Ответ 1
Я боролся с этим в течение пары минут и обнаружил, что этот вопрос действительно не рассматривался, поскольку новые переменные контекста (например, $index
) были введенный в нокаут 2.1
Ошибка, которую я делал, заключалась в том, что я просто забыл, что $index
сам является наблюдаемым и должен быть развернут, если мы используем его в выражении в атрибуте привязки данных. то есть,
<li class="row" data-bind="css: { alt: $index%2 }"></li>
должен стать
<li class="row" data-bind="css: { alt: $index()%2 }"></li>
woops:)
Ответ 2
Не используйте альтернативный стиль строк с Javascript, используйте CSS, который является более эффективным:)
https://developer.mozilla.org/en-US/docs/CSS/:nth-child