我有一个多维关联数组。
this.items = ko.observableArray([
{ name: "name1", viewable: true, children: [
{ name: "name1-1", viewable: true, children: []},
{ name: "name1-2", viewable: false, children: []}
] },
{ name: "name2", viewable: false, children: [] },
{ name: "name3", viewable: true, children: [
{ name: "name3-1", viewable: true, children: []},
] },
{ name: "name4", viewable: true, children: [] }
]);
目标是遍历该数组并仅打印出“可见”设置为 true 的值。
我使用一堆 if 和 foreach 语句来完成这项工作,但代码开始失控。这个例子只涵盖了 2 层,我的数组可以达到5 层的深度,所以这段代码会成倍增加,很快就会变得丑陋。
<ul data-bind="foreach: items">
<!-- ko if: viewable -->
<li data-bind="text: name"></li>
<!-- ko foreach: children -->
<!-- ko if: viewable -->
<li data-bind="text: name"></li>
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
</ul>
那么有没有更简单/更好的方法来循环整个数组?