Knockout.js 使用ko.applybindingstoode应用模板绑定

Knockout.js 使用ko.applybindingstoode应用模板绑定,knockout.js,carousel,owl-carousel,Knockout.js,Carousel,Owl Carousel,我已经创建了一个到集成转盘的自定义绑定。模板渲染完成后,需要绑定旋转木马。我正在尝试使用ko.applybindingstoode来呈现模板绑定并在其上应用carousel,但它不起作用。在模板中传递给foreach的程序数组是一个observableArray。它在应用模板绑定后增长 绑定应用于具有以下属性的UL列表: class="owl-carousel" data-bind="owlcarouselTemplate: { templateOptions: { name: 'grid-ro

我已经创建了一个到集成转盘的自定义绑定。模板渲染完成后,需要绑定旋转木马。我正在尝试使用ko.applybindingstoode来呈现模板绑定并在其上应用carousel,但它不起作用。在模板中传递给foreach的程序数组是一个observableArray。它在应用模板绑定后增长

绑定应用于具有以下属性的UL列表:

class="owl-carousel" data-bind="owlcarouselTemplate: { templateOptions: { name: 'grid-row-template', list: programs }, carouselOptions: { items : 5 } }"
自定义绑定如下所示:

ko.bindingHandlers.owlcarouselTemplate = {
init : function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
/**/
    var value = ko.unwrap(valueAccessor());
    var tmplBinding = value.templateOptions;

    ko.applyBindingsToNode(element, { template: { name: tmplBinding.name, foreach: tmplBinding.list } }, bindingContext);


    /**/
},
update : function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
    var value = ko.unwrap(valueAccessor());
    var tmplBinding = value.templateOptions;
    var owl = $(element).data('owlCarousel');

    valueAccessor = function() {
        return { name: tmplBinding.name, foreach: tmplBinding.list };
    }

    ko.bindingHandlers.template.update(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);

    if( owl ) {
        owl.destroy();
        owl.reinit();
    }
    else
        $(element).owlCarousel(value.carouselOptions);
}
}