动态挖空模板仅接受单个元素而不是数组

时间:2014-11-24 19:06:01

标签: javascript jquery knockout.js

我们正在尝试设置淘汰模板以延迟加载网站上“文件夹”的内容。我遇到的问题是,我传递给applyBindingAccessorsToNode函数的列表正在抛出错误,

ko.applyBindingAccessorsToNode($("#subnode-" + id)[0], {
        template: function () {
            return {
                name: "template-file-system-tree"
            }
        }
    }, ko.observableArray(testFileSystem[id]));

但如果我发送一个单独的项目

ko.applyBindingAccessorsToNode($("#subnode-" + id)[0], {
        template: function () {
            return {
                name: "template-file-system-tree"
            }
        }
    }, testFileSystem[id][0]);

我没有幸运找到applyBindingAccessorsToNode的文档,看看它是否可能不会列入列表......但是有一个模板系统无法接受项目列表似乎毫无意义。

jsfiddle

编辑:我的老板告诉我他只是打算让我们使用淘汰赛用于'平'名单,而只是在jquery中进行。我将检查jsfiddle代码的答案,我们希望将来能为这个问题找到解决方案。

1 个答案:

答案 0 :(得分:0)

您可以检查applyBindingAccessorsToNode source上一个参数名称是viewModelOrBindingContext,这意味着knockout要求您传递viewModel对象或ko.bindingContext的实例。

因此,您可以将对象{ fileSystemArray: testFileSystem[id] }作为最后一个参数传递。