Ko.applyBindings 完全动态创建的项目 jQuery

Ko.applyBindings with fully dynamically created items with jQuery

我在 Ko ViewModel 中使用 jQuery 动态创建了一个嵌套列表。 这个列表可能有无限个孩子,这就是为什么我用 jQuery 而不是直接用 KnockOut 来做。

我的问题是,每个动态创建的子项都具有我需要连接到我的 KnockOut ViewModel 的功能,但我找不到方法。

这是我当前代码的 JSFiddle:http://jsfiddle.net/juandozco/691mqcub/5/

我尝试了什么:

我确实将 click 事件绑定到我的按钮,jQuery,我给每个按钮一个 class 然后做了:$(document).on("click","btnClass",function(){//code});

但我相信应该有更好的方法来做到这一点。

关于如何做到这一点有什么建议吗?或者有另一种或更清洁的方法吗?

我在 Ko ViewModel 中使用 jQuery 动态创建了一个嵌套列表。这个列表可能有无限个孩子,这就是为什么我用 jQuery 而不是直接用 KnockOut 来做。

这正是 knockout templates 存在的原因。您可以使用无限组织元素 children 并组织模板以递归呈现。

我的问题是,每个动态创建的子项都具有我需要与我的 KnockOut ViewModel 连接的功能,但我找不到方法。

使用模板

[...] 我尝试了什么:[...]

尽量不要将 UI 与模型属性混用。在这种情况下,最好将可观察属性添加到数据数组中的项目,并像往常一样将其与 knockout 一起使用。该模板与常规 HTML 绑定具有相同的效果,因此递归应该不是问题(我在过去使用 KO 模板实现了您所要求的递归元素)。

问候