使用Knockout,在使用observableArray
時,您必須抓取底層數組(myArray()
)才能讀取長度。我不明白爲什麼myArray.length
不會返回底層數組的長度(而是返回0)。這是一個錯誤還是有原因,我只是錯過了?爲什麼ko.observableArray.length返回底層數組的長度?
的jsfiddle:http://jsfiddle.net/jsm11482/LJVWE/
JS /型號
var data = {
name: ko.observable("Test"),
items: ko.observableArray([
{ name: ko.observable("First Thing"), value: ko.observable(1) },
{ name: ko.observable("Second Thing"), value: ko.observable(2) },
{ name: ko.observable("Third Thing"), value: ko.observable(3) }
])
};
ko.applyBindings(data, document.getElementsByTagName("div")[0]);
HTML
<div>
<h1 data-bind="text: name"></h1>
<ul data-bind="foreach: items">
<li data-bind="text: value() + ': ' + name()"></li>
</ul>
<div>
<strong>data.items.length == </strong>
<!-- Expecting 3, get 0. -->
<span data-bind="text: items.length"></span>
</div>
<div>
<strong>data.items().length == </strong>
<!-- Expecting 3, get 3. -->
<span data-bind="text: items().length"></span>
</div>
</div>
有道理 - 我知道這是一個功能,但並沒有意識到'length'屬性指示參數的數功能 - 很好的知道!謝謝。 – 2013-05-02 13:34:57