假设我有下表适用于Bootstrap CSS和淘汰赛:
<table style="cursor:pointer;" class="table table-striped table-bordered table-hover table-condensed">
<tbody data-bind="foreach: items">
<tr>
<td data-bind="text: name"></td>
</tr>
<tr data-bind="if: somecondition">
<td>test</td>
</tr>
</tbody>
</table>
现在,如果我设置"somecondition"
为return "true"
,则可以看到结果表具有斑马条纹。一切顺利。但是,如果我将条件更改为“ false”,显然该行从屏幕上消失了,但是我根本看不到任何交替的行颜色。有人知道为什么以及如何使交替显示的行显示颜色吗?
问题是,基因敲除if
结合不控制它的元素是否上会存在与否,该元素的只是是否内容将存在与否。(这在文档中可能并不清楚,但是在此处,主要是在“注意:使用“如果”而不包含容器元素”位中)。所以,if
在你的榜样将控制是否内容的tr
存在,但tr
将在那里不管,给你一个tr
在它绝对没问题,这算作部分:nth-child
Bootstrap条带不会但不占用任何垂直空间的工作。(您可以通过呈现页面,然后右键单击表并在任何现代浏览器中使用“检查元素”来查看DOM中的实际内容来查看此内容。)
要根据条件使整个行存在/不存在,请使用KO虚拟元素包装该行:
<!-- ko: if: somecondition -->
<tr>
<td>test</td>
</tr>
<!-- /ko -->
您的原始代码示例,未正确剥离:http : //jsbin.com/tupusemu/1
使用虚拟元素的示例,正确地条带化:http : //jsbin.com/tupusemu/2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句