我对 knockout 有点新,我无法让 if
数据绑定(bind)工作...
html:
<div data-bind="if: items.length">
<h1>List</h1>
<ul data-bind="foreach: items">
<li data-bind="text: $data">
</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/