Я запускаю раскрывающийся список пользовательского интерфейса Kendo , привязывая виджет к наблюдаемому объекту. Как мне «сбросить» привязку значения к нулю после выбора, если для свойства valuePrimative
в моем раскрывающемся списке установлено значение false?
HTML:
<select
data-role="dropdownlist"
data-text-field="name"
data-value-field="id"
data-option-label="Select to add..."
data-bind="source: rootData, value: selectedValue">
</select>
<button class='add-to-list-button k-button k-add' data-bind="click: add enabled: selectedValue">+</button>
Наблюдаемое:
this.widgetObservable = kendo.observable({
rootData: this.rootData,
selectedValue: null,
myList: [],
delete: (e) => {
this.deleteItem(e);
},
add: (e) => {
this.addItem(e);
}
});
Сброс выбранного параметра в раскрывающемся списке ($('select', this.$container).data('kendoDropDownList').select(0)
действительно сбросит мой раскрывающийся список, но не очищает мою переменную selectedValue
.
Если для опции valuePrimitive
установлено значение true, я могу сбросить переменную selectedValue
на -1
, что действительно сбросит переменную и отключит мою кнопку, но это означает, что значение, возвращаемое раскрывающимся списком, будет примитивным , заставляя меня пойти искать оригинальный объект в некотором объекте сопоставления.
В идеале, когда я выбираю значение и нажимаю кнопку «Добавить», я хочу по существу выполнить какие-либо действия с выбранным ОБЪЕКТОМ, а затем сбросить раскрывающийся список до его исходного состояния.
Я видел, что он предложил использовать Combobox вместо раскрывающегося списка , если я хочу очистить выбор, потому что раскрывающийся список всегда имеет выбранное значение (что имеет смысл), но это вызывает вопрос, что выбирается после начальной загрузки (перед любым выбором) и почему я не могу просто сбросить это начальное значение? Кроме того, мне не нужны дополнительные функции, которые входят в комбинированный список.
Должен ли я даже не беспокоиться о привязке enabled
на кнопке?