微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在foreach模板的容器上引发AfterAfter火灾

如何解决在foreach模板的容器上引发AfterAfter火灾

| 我有一个gridview,它绑定并从UpdateFromJS调用更新后,我想斑马条纹。 该模板正在使用foreach数据绑定,但是我不想在AfterRender事件上剥离它,因为它将在每一行上调用。 我需要它在整个网格的渲染上触发。     

解决方法

        这是一个线程,上面有关于我过去如何处理此问题的描述:https://groups.google.com/d/topic/knockoutjs/cJ2_2QaIJdA/discussion 基本上,我们添加一个绑定来进行分割。绑定将在模板绑定之后指定,例如:
<ul data-bind=\"template: { name: \'itemsTmpl\',foreach: items },stripe: items,evenClass: \'light\',oddClass: \'dark\'\"></ul>
绑定可能看起来像这样:
//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);;
    }
}
这是具有此绑定和其他两个类似替代方法的示例:http://jsfiddle.net/rniemeyer/HJ8zJ/。一个将选项直接传递到
stripe
绑定中,另一个包装模板绑定,因此您只需指定一个绑定即可。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。