Один простой способ сделать это - добавить вычисляемую наблюдаемую, которая добавляет индекс к каждому элементу, например,
self.logLines = ko.observable(logLinesInput);
self.enhancedLogLines = ko.computed(function() {
var res = [];
$.each(self.logLines(), function(index, ll) {
res.push(new LogLine(index, ll));
});
return res;
}, self);
В моем случае LogLine()
создает объект с полем индекса и другими полямикоторые были в исходном объекте.
Теперь вы можете легко добавить зебры в ваш вывод:
<tr data-bind="css: { odd: (index % 2 == 1), even: (index % 2 == 0) }">