Kendo DropDownList Ошибка значения привязки MVVM по умолчанию

У меня есть следующий выпадающий список кендо:

<div class="slds-form-element" id="eventSubjectItem" style="text-align: center;">
                    <label class="slds-form-element__label" for="eventSubjectContainer" style="color: white; font-size: 15px;">Choose Event Field To Be Used To Label Event:</label>
                    <div id="eventSubjectBorder" style="border-top: 2px solid #f48942;"></div>
                    <div class="slds-form-element__control">
                        <div id="eventSubjectContainer">
                            <input data-role="dropdownlist" id="eventSubject" data-text-field="commonName" data-value-field="apiName" data-bind="source: eventFields, value: selectedField" style="margin-top: 10px; margin-bottom: 15px;"/>
                        </div>
                    </div>
                </div>

Тогда моя заметная привязка в javascript:

eventSubjectObservable = kendo.observable({
                    selectedField: '{!orgEventLabel}',
                    eventFields: allEventFields,
                    eventLabelChange: function(){
                        console.log(this.get('selectedField'));   
                    }
                });
kendo.bind($('#eventSubject'), eventSubjectObservable);

При попытке добавить 'events: {change: eventLabelChange}' к привязке данных в моем элементе html dropdownlist, я получаю обработчик не определена ошибка, когда это очевидно (забавно, у меня есть другой выпадающий список с таким же типом привязки на этой странице, которая прекрасно работает с событием изменения...).

Также... Я не могу получить значение по умолчанию. Я попытался установить значение выпадающего списка непосредственно за пределами наблюдаемой после привязки, а затем вызвать событие изменения, но ничего не произошло.

Когда commonName = 'Subject' и apiName = 'Subject', и я делаю dropdownlist.data ('kendoDropDownList'). Value ('Subject'), он имеет индекс -1, потому что не может найти элемент с этим значением, хотя, очевидно, существует один там... Я действительно не понимаю, что происходит с этим связыванием.

Кто-нибудь знает, как я могу установить значение по умолчанию, когда текстовые поля и поля значений не являются целыми числами и вместо этого являются строками? Очевидно, что он не может просто определить, что строка, переданная в value(), совпадает со значением одного из ее элементов...

1 ответ

Используйте привязку событий и изменение привязки к методу eventLabelChange. Также добавьте атрибут как data-auto-bind=true

<input data-role="dropdownlist" id="eventSubject" data-text-field="commonName" data-value-field="apiName" data-bind="source: eventFields, value: selectedField, events:{change:eventLabelChange}" data-auto-bind="true" style="margin-top: 10px; margin-bottom: 15px;"/>

Другие вопросы по тегам