est ici un fil avec une description de la façon dont j'ai essayé de gérer cela dans le passé: https://groups.google.com/d/topic/knockoutjs/cJ2_2QaIJdA/discussion
Fondamentalement, nous ajoutons une liaison à faire le striping. La liaison serait spécifiée après le modèle de liaison comme:
<ul data-bind="template: { name: 'itemsTmpl', foreach: items }, stripe: items, evenClass: 'light', oddClass: 'dark'"></ul>
La liaison pourrait ressembler à ceci:
//separate options in binding
ko.bindingHandlers.stripe = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()); //creates the dependency
var allBindings = allBindingsAccessor();
var even = allBindings.evenClass;
var odd = allBindings.oddClass;
//update odd rows
$(element).children(":nth-child(odd)").addClass(odd).removeClass(even);
//update even rows
$(element).children(":nth-child(even)").addClass(even).removeClass(odd);;
}
}
Voici un échantillon avec cette liaison et deux autres alternatives similaires: http://jsfiddle.net/rniemeyer/HJ8zJ/. On passe les options directement dans la liaison stripe
et une autre enveloppe la liaison de modèle, de sorte que vous pouvez simplement spécifier une liaison unique.
ok merci beaucoup! – jaffa