0

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

我不知道每个级别是否需要它自己的绑定,或者它都进入一个大的绑定功能。

这是示例代码。它不是 100% 工作的。控件不显示。


示例代码 <-- 链接

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);
}

};

4

0 回答 0