Knockout.js 如果长度问题,则淘汰

Knockout.js 如果长度问题,则淘汰,knockout.js,Knockout.js,我对敲除有点陌生,如果数据绑定工作,我就无法获得 html: 沙箱: 为什么if:items.length不起作用?knockout说它接受这种测试。通过将数据绑定更改为if:console.log(items.length),我发现长度始终为零。我是否需要制作一个可观察的并手动管理它?只需将代码更改为使用items().length而不是items.length <div data-bind="if: items().length"> <h1>List</

我对敲除有点陌生,如果数据绑定工作,我就无法获得

html:

沙箱:


为什么
if:items.length
不起作用?knockout说它接受这种测试。通过将数据绑定更改为if:console.log(items.length)
,我发现长度始终为零。我是否需要制作一个可观察的并手动管理它?

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

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

列表
..
length
是在底层数组上操作的本机JavaScript数组函数


看一看。在那里你可以找到很多有用的信息。
从文件:

您可以通过调用 observableArray是一个没有参数的函数,就像其他函数一样 可见的


我建议创建一个新的计算可观察对象来评估它。保持视图更清晰。您应该注意其
items()
的原因,因为敲除观察值实际上是函数。您的答案中不清楚为什么
项。长度
不正确。@Tyrsius在官方文档中有一个链接,精确描述了什么是
observearray
,以及如何使用它。。我已经更新了答案。
model =
    items: ko.observableArray(["A", "B", "C"])

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