是否可以只使用knockout js创建递归模板?
我有一个绝色佳人的对象:
function FormElementNode(children, text, value) {
var self = this;
self.children = ko.observableArray(children);
self.text = ko.observable(text);
self.value = ko.observable(value);
}
children是一个FormElementNode数组。
我想把它和它的孩子递归地画在一个层次结构列表节点中:
<ul>
<li>Parent text value:
Children:
<ul>
<li>Child1 text value</li>
<li>Child2 text value</li>
</li>
谢谢你!
4条答案
按热度按时间e4yzc0pl1#
是KnockOut支持递归模板,因此您可以在模板中引用和渲染相同的模板。
在您的案例中,示例html如下所示:
演示JSFiddle.
zfycwa2u2#
我想,我有一个小更好的解决方案,没有树根(或者我猜有多个树根)。请看:
http://jsfiddle.net/nonsense66/Bzekr/
模板:
Javascript语言:
希望能有所帮助!
js5cn81o3#
这篇文章对我有很大的帮助。我一直在寻找新的方法来使用knockout。我只是想添加一个有用的修改,这就是做什么nemesv建议只使用ko.mapping插件。
如本jsFiddle所示。
prdp8dxp4#
递归自定义绑定
另一个解决方案是,在阅读到模板速度较慢后,我考虑使用递归绑定。
<ul data-bind="nestMe: name"></ul>
在递归之前有机会处理数据应该会派上用场。
JSFiddle