Я использую НокаутJS и durandalJS 2.0. Я динамически добавляет два выпадающих списков на основе записей таблицы базы данных и заполняя их данными из другой таблицы. В каждом раскрывающемся списке также установлен флажок . Как получить выбранные раскрывающиеся значения?Получить выбранные значения из динамически созданных выпадающих списков
модели
var dataToAdd = {
mydata_Id: ko.observable(),
mydata_Name: ko.observable(),
mydata_data: ko.observableArray([dataTask])
};
var dataTask = {
taskId: ko.observable(),
dropdownId: ko.observable()
};
var taskList=ko.observableArray([]);//get data from database table. Consider there are two entries.
var dropdownData=ko.observableArray([]); //get the dropdown data
Посмотреть
//Since *taskList* has two entries, two dropdowns with their respective checkbox will get generated.
<div data-bind="foreach:taskList">
<label><input type="checkbox" data-bind="checked: true" />
<span data-bind="text:Name"></span></label>
<select data-bind="options: $root.DropdownData, optionsValue: 'Id', optionsText: 'Name', optionsCaption: 'Select...', value: $root.dataTask.dropdownId</select>
</div>
Первый: Как получить выбранное значение для каждого из выпадающего списка, когда я попал в ADD
кнопка? Когда я использую значение: $root.dataTask.dropdownId
, оба раскрывающихся списка изменяются на одно и то же выбранное значение. Когда я установите флажок, раскрывающийся должны быть включены, и после выбора, я должен быть в состоянии обновить observable
массива, как показано ниже:
{taskId:44,dropdownId:10},{taskId:55,dropdownId:11}
Второго: Кроме того, когда я снимите флажок, соответствующее падение -down должен быть отключен, и запись должна быть повторно перенесена из массива observable
.
Можете ли вы сделать скрипку? – Damien
Если оба элемента 'select' используют' значение: $ root.dataTask.dropdownId', они указывают на держатель значения _same_. Таким образом, поведение, которое вы описываете. Вам нужно будет настроить раскрывающийся список, чувствительный к контексту, но с предоставленными фрагментами, которые трудно дать руководство по пути достижения этого. – Origineil