У меня есть массив текстов, которые я показываю в <select>
.Проблема фильтрации массива с нокаутом и селекторами
Тексты могут иметь другую версию, и я хочу отфильтровать <select>
на основе самой последней версии.
Я думаю, что есть более элегантные способы сделать это (предложения приветствуются), но я решил использовать 2 <select>
s для альтернативной видимости в зависимости от флажка.
Код взлома, но результат выглядит довольно неплохо. К сожалению, есть ошибка.
У меня есть два наблюдаемых с указанием выбранной опции в соответствующих массивах:
self.SelectedText = ko.observable();
self.SelectedUnique = ko.observable();
Оба имеют подписки, но я не могу связать их вместе и в подписке, поэтому я выбрал один, чтобы быть indipendant на другом, как это:
self.SelectedUnique.subscribe(function (text) {
if (text) {
self.SelectedText(text);
}
});
Однако выход из синхронизации.
Сценарий 1: выберите текст 1,2,3. [OK] Сценарий 2: выберите текст 2; «Только для последних версий»
Это не вызывает никаких параметров («Выбрать ...»). Не то, что я хочу.
Все ухудшается.
Сценарий 3: снять отметку; выберите текст 3; Затем снова проверьте «Последние версии».
Теперь выбранный вариант выбора установлен для выбора варианта № 2 нефильтрованного.
Возможно, существует простая проблема. Я просто не могу заставить его работать. Вот скрипка: Fiddle: http://jsfiddle.net/h5mt51gv/6/
Вся помощь и предложения оценены!
Вы знакомы с перезаписываемых вычислен наблюдаемыми? – Keen
Вы говорите, что делаете * не * хотите ... но вы не говорите, что хотите. ;) Что следует выбирать, если опция недоступна? – Tomalak
Хорошая точка Томалак. когда опция недоступна, я думаю, что опция «Выбрать ..» актуальна. В качестве альтернативы можно выбрать последнюю версию (вместе с информативным всплывающим окном). Я не уверен в этом, но рассмотрю эту проблему позже. –