0

我正在使用这个 knockoutjs 教程将数组转换为可观察数组。http://knockoutjs.com/documentation/observableArrays.html。但是给定的以下行给了我一个长度为零的数组。

var anotherObservableArray = ko.observableArray([
    { name: "Bungle", type: "Bear" },
    { name: "George", type: "Hippo" },
    { name: "Zippy", type: "Unknown" }
]);

为什么另一个ObservableArray 不起作用?

4

2 回答 2

3

您应该访问底层数组的长度,而不是可观察数组本身。
anotherObservableArray().length会给你合适的长度。

检查这个小提琴:http: //jsfiddle.net/jfSG8/

于 2013-02-19T07:41:38.937 回答
2

您还没有告诉我们您是如何使用 的var anotherObservableArray,但以下应该可以工作:

<ul data-bind="foreach: anotherObservableArray">
    <li data-bind="text: name"></li>
</ul>

带淘汰赛/js:

var viewModel = function() {
  this.anotherObservableArray = ko.observableArray([
    { name: "Bungle", type: "Bear" },
    { name: "George", type: "Hippo" },
    { name: "Zippy", type: "Unknown" }
  ]);
};

ko.applyBindings(new viewModel());

看到这个 jsfdiddle

请注意,我没有使用 avar来存储可观察数组,而是将其创建为视图模型上的属性。

于 2013-02-19T07:40:13.447 回答