2013-04-18 3 views
12

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

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> 

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

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

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

+0

Вот как вы это делаете. Если он не работает, у вас есть еще одна проблема с вашим кодом. –

ответ

6

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

Вот working fiddle

+0

Да, это была ошибка копирования и вставки, когда я задал вопрос, но я плохой. Я ценю скрипку; по крайней мере, я знаю, что у меня есть синтаксис, и моя проблема лежит в другом месте. Я приму свой ответ и выкопаю еще немного, чтобы выяснить, где еще я могу ошибиться. – Eric

1

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

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

<!-- ko if: (myObservableArray().length > 0) --> 
    <div data-bind="text: myObservableArray()[0].price"></div> 
<!-- /ko --> 
Смежные вопросы