如果 knockout.js 中的语句没有按预期工作
If statement in knockout.js not working as expected
我试图在数据数组为空时在 table 行中显示字符串 "No data was found.",但似乎无论如何都会打印消息。
Reproduction online(忽略条件orders.length ==0
)
我做错了什么?
<table>
<thead>
<tr>
<th>Truck</th>
<th>Pickup</th>
</tr>
</thead>
<!-- ko if: orders.length==2 -->
<tbody>
<tr colspan="2">No data was found.</tr>
</tbody>
<!-- /ko -->
<tbody data-bind="foreach: orders">
<tr>
<td data-bind="text: truck"></td>
<td></td>
</tr>
</tbody>
</table>
如果您的 orders
是一个 ko.observableArray
,您需要编写 orders()
来获取底层数组并从那里获取长度:
<!-- ko if: orders().length== 0 -->
您的 HTML 也无效,缺少 td
元素:
<!-- ko if: orders().length==0 -->
<tbody data-bind="if: orders().length==0">
<tr colspan="2"><td>No data was found.</td></tr>
</tbody>
<!-- /ko -->
演示 JSFiddle.
我试图在数据数组为空时在 table 行中显示字符串 "No data was found.",但似乎无论如何都会打印消息。
Reproduction online(忽略条件orders.length ==0
)
我做错了什么?
<table>
<thead>
<tr>
<th>Truck</th>
<th>Pickup</th>
</tr>
</thead>
<!-- ko if: orders.length==2 -->
<tbody>
<tr colspan="2">No data was found.</tr>
</tbody>
<!-- /ko -->
<tbody data-bind="foreach: orders">
<tr>
<td data-bind="text: truck"></td>
<td></td>
</tr>
</tbody>
</table>
如果您的 orders
是一个 ko.observableArray
,您需要编写 orders()
来获取底层数组并从那里获取长度:
<!-- ko if: orders().length== 0 -->
您的 HTML 也无效,缺少 td
元素:
<!-- ko if: orders().length==0 -->
<tbody data-bind="if: orders().length==0">
<tr colspan="2"><td>No data was found.</td></tr>
</tbody>
<!-- /ko -->
演示 JSFiddle.