2014-12-15 4 views
3

У меня есть массив объектов, хранящихся внутри observableArray в Knockout.js, и я пытаюсь связать одно из свойств объектов с привязкой optionsText для элемента select, однако это не работает с параметрами не отображаются.Связать optionsText с объектом с массивом объектов с помощью Knockout?

observableArray изначально пустым и заполняется запрос AJAX:

self.currentPeople = ko.observableArray([]); 

После запроса AJAX, я могу console.log это и получить следующий ответ:

console.log(self.currentPeople); 
// Produces [Object, Object] where each of the objects have properties of `personId` and `personName` 

Еще мой выберите выпадающее меню остается незаселенным:

<select class="large-3" data-bind="options: currentPeople, optionsText: 'personName', optionsValue: 'personId', optionsCaption: 'All', value: currentPerson"></select> 

Только приложение «Все» уши. Есть идеи?

+0

как вы заполнения массива currentPeople? – sbaglieri

+0

Население через AJAX. Он назначен, и я могу 'console.log' эту переменную, чтобы увидеть, что она заполнена. – ReactingToAngularVues

+0

Да, я знаю. Но в вашем коде у вас есть self.currentPeople (ajaxData) или self.currentPeople = ajaxData? Это распространенная ошибка – sbaglieri

ответ

2

Если console.log(self.currentPeople) показывает ваш массив объектов, это означает, что вы (неправильно) заполняете его с помощью назначения вместо вызова его как функции.

занесения как:

self.currentPeople(newData); 
+0

Спасибо! Не могу поверить, что я пропустил это. – ReactingToAngularVues

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