2013-10-24 4 views
1

У меня есть куча текстовых полей, которые должны удерживать значение для нескольких отдельных элементов в наблюдаемом массиве. Количество текстовых полей зависит от количества «свойств», которые пользователь выбирает на более раннем экране, и свойства могут быть добавлены и удалены позже. В настоящее время, я начинаю с пустым массивом и пытаюсь установить значение связывания текстового поля в качестве нового ключа в массиве:Установка привязки значения textarea к элементу наблюдаемого массива

<input type="text" class="tdEdit" data-bind="value: listing.properties[property_id]"/> 

Листинга является объектом, который имеет var properties = ko.observableArray([]), определенные в нем. Моя цель состоит в том, чтобы массив свойств выглядел примерно как {"property1": "3", "property2": "4"} и т. Д. В настоящее время массив свойств всегда остается пустым.

Надеюсь, это имеет какой-то смысл.

ответ

2

Использование properties()[property_id] вместо properties[property_id]

data-bind="value: listing.properties()[property_id]" 

Я думаю listing.properties должен быть ko.observable вместо ko.observableArray

JSFiddle DEMO

+0

Даже наблюдаемая, она по-прежнему пусто –

+0

@JakeRoussel демо добавляется, пожалуйста, проверьте его – Ilya

+0

@JakeRoussel - это 'листинг'' obervable'? Это правда, вы должны использовать 'listing(). Properties() [property_id]' – Ilya

Смежные вопросы