1

我有动态创建列表(ol 或 ul)的问题。我面临的问题是,有时我需要有序列表,有时需要无序,具体取决于 JSON。我正在使用淘汰赛,这是我的 html,

<ol data-bind="foreach: items" ><li><a data-bind="text: $data"></a></li></ol>

这是我的 JSON,

{
   items: ['a','b','c'],
   orderedList: true
}

您可以看到orderedList 可能是true 或false。如果为真,那么我需要使用 ol,如果为假,我需要使用 ul。我也避免复制。任何方式来做到这一点。

4

1 回答 1

2

这是我放在一起的粗样品,无法测试。但你可以得到这个想法。

<!-- ko if : orderedList -->
<ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
<ul>
<!-- /ko -->
<!-- ko foreach: items -->
<li><a data-bind="text: $data"></a></li>
<!-- /ko -->
<!-- ko if : orderedList -->
</ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
</ul>
<!-- /ko -->

编辑:淘汰赛中没有 if-else 条件。因此,您将不得不依赖使用多个 Ko if 语句。

EDIT2:适用于 OP 的代码版本。

<!-- ko if : orderedList -->
<ol data-bind="foreach: items">
    <li><a data-bind="text: $data"></a></li>
</ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
<ul data-bind="foreach: items">
    <li><a data-bind="text: $data"></a></li>
</ul>
<!-- /ko -->
于 2013-01-16T08:07:28.163 回答