3

我对淘汰赛有点陌生,我无法让if数据绑定工作......

html:

<div data-bind="if: items.length">
    <h1>List</h1>

    <ul data-bind="foreach: items">
        <li data-bind="text: $data">
            &nbsp;
        </li>
    </ul>
</div>

javascript:

model =
    items: ko.observableArray(["A", "B", "C"])

ko.applyBindings(model)

沙箱:http: //jsfiddle.net/gibatronic/EXwrR/

为什么if: items.length不起作用?淘汰赛文档说它接受这种测试。我通过将数据绑定更改为if: console.log(items.length). 我是否必须进行可观察并手动管理?

4

1 回答 1

10

只需更改代码以使用items().length而不是items.length

<div data-bind="if: items().length">
    <h1>List</h1>
..

length 是对底层数组进行操作的原生 JavaScript 数组函数。


查看Knockout.js 文档。在那里你可以找到很多有用的信息。
从文档:

您可以通过调用observableArray作为不带参数的函数来获取底层 JavaScript 数组 ,就像任何其他 observable 一样。

于 2012-10-08T16:17:12.967 回答