portAvailable
是$root.devices
中每个设备的一个可观察布尔值。当设备端口不可用时,portAvailable
是false
,CSS类text-warning
应该添加到设备的td
元素中。
下面的ifnot
数据绑定确实可以工作,所以我尝试应用CSS数据绑定的方式有问题,而不是可观察性本身。
<table class="table table-condensed">
<thead>
<tr>
<td style="text-align:center">{{ _('Name') }}</td>
<td style="text-align:center">{{ _('Port') }}</td>
</tr>
</thead>
<tbody data-bind="sortable: { data: $root.devices, options: { cancel: '.unsortable', handle: '.moveDevice', axis:'y'} }">
<tr>
<td><span data-bind="text: name"></span></td>
<td data-bind="css: {'text-warning': portAvailable == false}">
<span data-bind="text: port"></span>
<i class="fa fa-exclamation-triangle" title="{{ _('Port currently unavailable') }}" data-bind="ifnot: portAvailable"></i>
</td>
<td style="text-align:right">
<div class="btn-group">
<a href="#" class="btn btn-mini moveDevice"><i class="fa fa-arrows-alt" aria-hidden="true"></i></a>
</div>
</td>
</tr>
</tbody>
1条答案
按热度按时间9jyewag01#
我猜
portAvailable
是一个可观测的,你需要在表达式中展开它:ifnot
绑定之所以能够工作,是因为像所有绑定一样,如果它们接收的都是一个可观察的对象,那么它会在必要时为您展开可观察的对象。