动态挖空模板仅接受单个元素而不是数组
Dynamic knockout template only accepting single elements instead of an array
我们正在尝试设置一个挖空模板来延迟加载站点上"文件夹"的内容。我遇到了一个问题,即我传递给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 的文档,看看它是否不会接受列表......但是拥有一个不能接受项目列表的模板系统似乎毫无意义。
斯菲德尔
编辑:我的老板告诉我,他只打算让我们对"平面"列表使用淘汰赛,并在jquery中做到这一点。 我将根据 jsfiddle 代码检查答案,我们希望将来能为遇到此问题的任何人找到解决方案。
你可以检查applyBindingAccessorsToNode源的最后一个参数名称是viewModelOrBindingContext
,这意味着KNOCKOUT期望你传递viewModel对象或ko.bindingContext
的实例。
因此,您可以将例如对象{ fileSystemArray: testFileSystem[id] }
作为最后一个参数传递。
相关文章:
- 使用jquery将单个换行符替换为span元素
- 如何创建具有单个元素或元素数组的数组
- 扩展验证.js并验证单个元素
- <noscript>标记单个元素或类似的东西
- Angularjs元素在一个调用中同时查找select和input-这是单个标记查找的极限
- 单个功能的多个元素
- 如何使用jQuery跟踪单个dom元素上的点击事件,并相应地更新其点击计数器
- 用程序从单个HTML元素中删除CSS样式规则
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- 从单个元素中Jquery关闭事件
- Javascript通过元素,替换表的单个部分
- 将复杂的html/css/js元素添加到单个Wordpress页面中
- 使用D3.js从单个数据点生成多个DOM元素
- 为什么 .data() 适用于一组元素,但不适用于单个元素
- 访问单个 Json 对象中的元素
- 将 CSS 类添加到数组中的单个元素
- 如何将动态追加元素的多个值存储到单个 var 中,然后检索到函数中
- 在 Ext JS 4 上显示/隐藏系列的单个行元素
- 从单个 Div 元素中删除单击事件
- 更改 JS 数组中的单个对象会更改所有元素