如果knockout.js中的语句没有按预期工作

时间:2015-06-29 10:56:00

标签: javascript knockout.js knockout-3.0

我正在尝试显示字符串“未找到数据”。每当数据数组为空时,在表行内部,但无论如何,似乎总是打印消息。

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>

1 个答案:

答案 0 :(得分:2)

如果您的ordersko.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