Javascript knockout.js中的If语句未按预期工作

Javascript knockout.js中的If语句未按预期工作,javascript,knockout.js,knockout-3.0,Javascript,Knockout.js,Knockout 3.0,每当数据数组为空时,我都试图在表行中显示字符串“No data was found.”,但不管发生什么情况,似乎总是打印消息 (忽略条件orders.length==0) 我做错了什么 <table> <thead> <tr> <th>Truck</th> <th>Pickup</th> </tr> <

每当数据数组为空时,我都试图在表行中显示字符串“No data was found.”,但不管发生什么情况,似乎总是打印消息

(忽略条件
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>

卡车
改善
没有找到任何数据。

如果您的
订单
是一个
ko.observableARay
您需要编写
orders()
以获取基础数组并从中获取长度:

<!-- ko if: orders().length== 0 -->

演示。

我更改了它,但它没有达到我预期的效果。似乎恰恰相反:@Alvaro你的小提琴有几个问题。“未找到任何数据”不在
中,因此最终位于错误的位置,并且您对数据的分配不正确-它应该是
self.orders(数据)-不需要
=
。谢谢你指出我的错误!我会在3分钟内接受答案。
<!-- ko if: orders().length==0 -->
    <tbody data-bind="if: orders().length==0">
        <tr colspan="2"><td>No data was found.</td></tr>
    </tbody>
<!-- /ko -->