Сброс значения Onservable в null при использовании привязки значения в раскрывающемся списке пользовательского интерфейса Kendo

1

Я запускаю раскрывающийся список Kendo UI, привязывая виджет к объекту Observable. Как мне "сбросить" привязку значения к null после того, как будет сделан выбор, если для свойства valuePrimative в моем выпадающем 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) действительно сбросит мое раскрывающееся $('select', this.$container).data('kendoDropDownList').select(0), но оно не очистит мою selectedValue переменную $('select', this.$container).data('kendoDropDownList').select(0).

Если valuePrimitive параметра valuePrimitive установлено значение true, я могу сбросить selectedValue переменную -1 на -1, которая действительно сбросила бы эту переменную и отключила бы мою кнопку, но это означает, что значение, возвращаемое выпадающим списком, было бы примитивным, заставляя меня искать исходный объект в некотором объекте сопоставления.

В идеале, когда я выбираю значение и нажимаю кнопку "Добавить", я хочу по существу, делать вещи с выбранным ОБЪЕКТОМ, а затем сбросить раскрывающийся список до его исходного состояния.

Я видел, что он предложил использовать Combobox вместо Dropdown, если я хочу очистить выделение, потому что выпадающее меню всегда имеет выбранное значение (что имеет смысл), но это вызывает вопрос, который выбирается после начальной загрузки (перед любым выбором ) и почему я не могу просто сбросить это начальное значение? Кроме того, мне не нужны дополнительные функции, которые поставляются с комбинированным ящиком.

Должен ли я даже не беспокоиться об enabled привязке к кнопке?

Теги:
kendo-ui
observable

1 ответ

0

Вы должны быть в состоянии сделать

delete: function(e) {
    this.set('selectedValue', null);
}

если вы используете синтаксис (e) => {} это не будет наблюдаемым, поэтому будьте осторожны.

ваше падение должно реагировать на это через mvvm.

  • 0
    к сожалению, я не могу установить в ноль, так как я не использую примитивы; Мне нужно выпадающее меню, чтобы вернуть объект, поэтому, как только я установил selectedValue на ноль (примитив), я получаю ошибку. Другими словами, ваше решение работает только тогда, когда параметр valuePrimitive в раскрывающемся списке имеет значение true, и это конкретное решение задокументировано во многих местах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню