Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 使用带有嵌套foreach的模板删除自定义绑定_Templates_Knockout.js_Custom Binding - Fatal编程技术网

Templates 使用带有嵌套foreach的模板删除自定义绑定

Templates 使用带有嵌套foreach的模板删除自定义绑定,templates,knockout.js,custom-binding,Templates,Knockout.js,Custom Binding,我有一个问题,我有4个嵌套列表,每个都在它自己的淘汰模型中。表单有多个页面。一个页面有多个部分。一个部分有多个组。组具有控件。除组之外的每个级别(页、节、组、控件)都可以在其自己的级别内进行排序。我遇到的问题是,我正在尝试使用带有列表的模板的自定义绑定。我需要自定义绑定来使用模板,但我还想在同一绑定中对元素进行排序。我让它有点工作,但我失去了背景。当我在一个控件元素上执行ko.dataFor时,它给了我一个节模型,而不是我想要的控件模型。而ko.ContextFor$parents数组在应该进行

我有一个问题,我有4个嵌套列表,每个都在它自己的淘汰模型中。表单有多个页面。一个页面有多个部分。一个部分有多个组。组具有控件。除组之外的每个级别(页、节、组、控件)都可以在其自己的级别内进行排序。我遇到的问题是,我正在尝试使用带有列表的模板的自定义绑定。我需要自定义绑定来使用模板,但我还想在同一绑定中对元素进行排序。我让它有点工作,但我失去了背景。当我在一个控件元素上执行ko.dataFor时,它给了我一个节模型,而不是我想要的控件模型。而ko.ContextFor$parents数组在应该进行链备份时为空。我正在使用rendertemplateforeach,它似乎只在2.3调试版本的knockout中。任何帮助都将不胜感激

我不知道是每个级别都需要它自己的绑定,还是所有级别都需要一个大的绑定函数

下面是示例代码。它没有100%起作用。控件没有显示



显示一个(最少的)示例,说明如何在视图中使用绑定。这是JSFiddle链接
ko.bindingHandlers.renderSection = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
    $(element).sortable({
        handle: '.draggable',
        placeholder: "ui-state-highlight",
        connectWith: ".sectionSortable",
    }).disableSelection();
    return {
        controlsDescendantBindings: true
    };
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
    var options = ko.utils.unwrapObservable(valueAccessor())
    return ko.renderTemplateForEach(options.name, options.foreach, {}, element, bindingContext);
}