目前我有一个敲除绑定,可以在列表中对行进行条纹处理,效果很好
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); ;
}
}
触发自
<button data-bind="click: addWidget" style="display:none">Add Item</button>
我遇到的问题是从服务器重新加载数据时,我在视图模型中手动调用 addWidget() 条纹绑定处理程序未应用 - 所有行显示为相同颜色,如果我单击 html 按钮,则发生绑定并出现条纹
var ViewModel = function() {
self.addWidget();
});
是否可以在 js 中手动重新应用此自定义绑定?
谢谢
编辑:
条纹绑定像这样应用
<div data-bind="foreach: widgets, stripe: widgets, evenClass: 'light', oddClass: 'dark'">