2013-02-19 88 views
0

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

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

为什么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()); 

this jsfdiddle

+2

你是如何访问它来获得零长度的数组? anotherObservableArray()。length应该可以工作 – ryadavilli 2013-02-19 07:36:27

+0

Yup谢谢..我在考虑js数组 – user960567 2013-02-19 07:44:32

回答

3

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

检查此琴:http://jsfiddle.net/jfSG8/

2

你如何使用var anotherObservableArray,但下面应该工作你还没有告诉我们。

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