KnockoutJS选择嵌套列表,如Windows资源管理器

时间:2012-01-04 11:43:10

标签: knockout.js

我搜索了高低,以获得以下答案。

我有一个文件夹列表,我希望能够点击该文件夹并显示其子文件。

这个JSfiddle会更好地解释它,它几乎完整但它会扩展所有文件夹

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为你正在骑车所有的链接'在' selectedFolder'对于每个文件夹,不仅仅是所选的文件夹!

这也意味着链接位于BOTH文件夹" link1"和" link2",如果你选择" Folder1"或" link3"和" link4"如果您选择" Folder2"!

在显示链接之前,您需要检查当前文件夹是否已被选中,例如:

http://jsfiddle.net/saurus/kJYsm/

请注意我是如何更改

"with: $parent.selectedFolder" 

"if: $parent.selectedFolder().folderName == folderName"

我还添加了另一个div检查" $ parent.selectedFolder"没有未定义,没有它在第一次运行时发生错误。你可以通过其他方式做到:你可以简单地设置' selectedFolder'到默认的虚拟文件夹,或者如果你不想要额外的标记,你可以使用模板注释。

另请注意,即使删除":"一切正常,因为现在" $ data"是当前文件夹,这正是我们所需要的。

希望这有帮助!