knockout.js - 如果长度问题 knockout

标签 knockout.js

我对 knockout 有点新,我无法让 if 数据绑定(bind)工作...

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 不起作用? knockout documentation说它接受这种测试。通过将数据绑定(bind)更改为 if: console.log(items.length),我看到长度始终为零。我是否必须制作一个可观察的并手动管理它?

最佳答案

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

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

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


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

You can get the underlying JavaScript array by invoking the observableArray as a function with no parameters, just like any other observable.

关于knockout.js - 如果长度问题 knockout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785448/

相关文章:

knockout.js - Breeze 和 Knockout 中的验证

javascript - KnockoutJS 添加和循环可观察对象

knockout.js - 如何在 knockout View 模型点击事件中访问 $parent 或 $parents[]?

javascript - 复选框标签启用禁用knockoutjs

javascript - Knockoutjs 模板文件和本地化 resx 文件

javascript - 无法应用 knockout 绑定(bind),即使使用默认教程

knockout.js - 如何在knockout.js中列出数据库值?

javascript - 如果从浏览器控制台提交,Knockoutjs 不会保存数据

javascript - 在 knockoutjs 中绑定(bind)自定义处理程序两次

javascript - 出现 'Uncaught Error: Unable to parse bindings' 错误,但代码有效