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

Я запускаю раскрывающийся список пользовательского интерфейса 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 на кнопке?

1 Ответ

0 голосов
/ 04 мая 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...