如何在knockout observablearray中通过索引访问对象?

时间:2013-04-18 18:27:51

标签: knockout.js

我有一个可观察的数组:

var myObservableArray = ko.observableArray([
    { name: "Car", price: "9999" },
    { name: "Shoes", price: "20" },
    { name: "Paper", price: "1" }
]);

我正在尝试访问数组中第一项的价格。

<div data-bind="text: myObservableArray()[0]"></div>

显示器:

[object Object]

我试过了:

<div data-bind="text: myObservableArray()[0].price"></div>

但这只会返回一个null。

这样做的正确语法是什么?

编辑:修复了下面指出的复制和粘贴错误。

3 个答案:

答案 0 :(得分:7)

除了使用错误的属性名称developerexampledata而不是myObservableArray之外,您的代码就可以了。

这是working fiddle

答案 1 :(得分:1)

这可能只是在您填充数组之前尝试访问数组的第一项。

使用简单的if语句包装数据绑定控件以首先检查:

<!-- ko if: (myObservableArray().length > 0) -->
    <div data-bind="text: myObservableArray()[0].price"></div>
<!-- /ko -->

答案 2 :(得分:0)

错误的方式.....

self.getvaluefrom = function (a ,b)

try catch返回有效值 然后添加data-bind="text:getvaluefrom(a,b) 如果该项不在数组中,则会出现ko错误。...

ko html仅显示数组的静态有效条目。...