我对 knockoutjs 非常陌生 - 完成了教程,我有了一个良好的开端。我的应用程序似乎非常适合 KO。在那我需要用来自 JSON 的数据填充一个表。这些数据是嵌套的,可以嵌套在任何深度,但我的 API 只会返回两层深度的数据。
例如
- 节点 1
- 节点 A
- 节点 B
我已经设法将数据加载到我的表中,可爱。我更进一步,并支持嵌套。我有一个要求,如果一个节点有孩子,它可以在节点下面注入到表中。
这方面的一个例子是......
- 节点 1 (HasChildren)
- 节点 A
- 节点 B (HasChildren)
作为节点 B 'HasChildren',我想允许将其子节点加载到节点 B 下方的表中。在这种情况下,我将能够查询我的 API,它会返回节点 B 的子节点
- 节点 1
- 节点 A
- 节点 B
- 节点 B1
- 节点 B2
我有一些大致工作的东西,但它只适用于 1 级节点。一旦到达 level2,似乎找不到我的方法(addChild)。我无法弄清楚为什么它找不到该方法,因为它在我的 ViewModel 中。
下面的帖子对解决这部分问题大有帮助。
帮助!
我已经把代码贴在这里了……(如果你在桌子上滚动到右边,你可以点击打开,看看发生了什么!)
http://jsfiddle.net/8k6pj/1/ - 原始版本(2012 年 4 月 18 日)
http://jsfiddle.net/8k6pj/6/ - 最新版本
提前谢谢了!
劳伦斯
ps 已经进一步更新了我的代码,所以虽然我有点卡在上面,已经开始研究如何实现代码回发以便我们可以保存。
看起来回发正在工作,但是它不会回发更改的值,而是回发原始值。认为这是因为我需要使用 ObservableArray,现在正在探索它。