Как получить доступ к объекту по индексу в нокауте наблюдаемого?

У меня есть наблюдаемый массив:

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>

Но это просто возвращает нуль.

Какой правильный синтаксис для этого?

Изменить: исправлена ​​ошибка копирования и вставки, указанная ниже.

Ответ 1

Помимо использования неправильного имени свойства developerexampledata вместо myObservableArray, ваш код в порядке.

Вот рабочая скрипка

Ответ 2

Это может быть просто для вас, пытаясь получить доступ к первому элементу массива до того, как массив будет заполнен.

Оберните свой контроль привязки данных с помощью простой инструкции if, чтобы сначала проверить:

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