我正在使用这个knockoutjs教程将数组转换为可观察数组。 http://knockoutjs.com/documentation/observableArrays.html。但是给定的以下行给了我一个零长度的数组。
var anotherObservableArray = ko.observableArray([
{ name: "Bungle", type: "Bear" },
{ name: "George", type: "Hippo" },
{ name: "Zippy", type: "Unknown" }
]);
为什么anotherObservableArray不起作用?
答案 0 :(得分:3)
您应该访问基础数组的长度而不是可观察数组本身。
anotherObservableArray().length
会给你合适的长度。
检查这个小提琴:http://jsfiddle.net/jfSG8/
答案 1 :(得分:2)
您尚未告诉我们您如何使用var anotherObservableArray
,但以下情况应该有效:
<ul data-bind="foreach: anotherObservableArray">
<li data-bind="text: name"></li>
</ul>
使用knockout / js:
var viewModel = function() {
this.anotherObservableArray = ko.observableArray([
{ name: "Bungle", type: "Bear" },
{ name: "George", type: "Hippo" },
{ name: "Zippy", type: "Unknown" }
]);
};
ko.applyBindings(new viewModel());
请参阅this jsfdiddle。
请注意,我没有使用var
来存储可观察数组,而是将其作为视图模型上的属性创建。