我知道如果没有这样的数据我们可以隐藏表格:可见:车辆()。长度> 0
<table data-bind="visible: Vehicles().length>0">
<thead><tr><th>Brand</th><th>Model</th><th>Registration</th><th></th></tr></thead>
<tbody data-bind="foreach: Vehicles">
<tr data-bind="click: $root.goToVehicle">
<td data-bind="text: Brand"></td>
<td data-bind="text: Model"></td>
</tr>
</tbody>
</table>
车辆是一个可观察的物体。
现在我有另一个场景:
<table data-bind="with: chosenCategoryData">
<thead><tr><th>Brand</th><th>Model</th><th>Registration</th><th></th></tr></thead>
<tbody data-bind="foreach: Vehicles">
<tr data-bind="click: $root.goToVehicle">
<td data-bind="text: Brand"></td>
<td data-bind="text: Model"></td>
</tr>
</tbody>
</table>
正如您所看到的,我的包含我填充html表的数据的Vehicles对象包含在名为selectedCategoryData的另一个对象(可观察的)中。
我尝试用visible: Vehicles().length>0
隐藏表格,但我收到错误,可能是因为车辆无法观察到。
我该怎么办?
答案 0 :(得分:2)
IIRC,您无法在同一with
中使用visible
和data-bind
。您可以将其包装在另一个<div>
<div data-bind="with: chosenCategoryData">
<table data-bind="visible: Vehicles.length">...</table>
</div>
或使用虚拟语法:
<!-- ko with: chosenCategoryData -->
<table data-bind="visible: Vehicles.length">
<!-- /ko -->
看一下jsfiddle。如果是Vehicles()
,请使用observableArray
。