У меня есть DropDownList со следующими привязками:Knockout.js - Предотвратить событие изменения связывания для запуска при установке значения через наблюдаемую
<select data-bind="value: DropDownValue, event: { change: OnChange }">
<option value="1">Val 1</option>
/* and more */
</select>
Событие OnChange правильно срабатывает, когда пользователь мог выбрать другое значение из DropDownList.
Событие также запускается при обновлении значения наблюдаемого свойства с использованием viewModel.DropDownValue(1)
.
То, что я пытаюсь достичь, заключается в том, чтобы инициировать событие изменения ТОЛЬКО, когда пользователь устанавливает значение через пользовательский интерфейс.
Возможно ли заблокировать событие изменения при обновлении значения через наблюдаемое?
Это JSFiddle пример: https://jsfiddle.net/5ex5j7jL/3/
какой-либо конкретной причине вы не используйте привязку 'options'? – cl3m
Так что я не знаю, почему вам нужно изменить значение внутри вашей модели, пока вы этого не хотите? ваш пример имеет ошибку здесь, это пример без ошибок https://jsfiddle.net/5ex5j7jL/1/ –
@ cl3m - я использую привязку 'value', потому что DropDownList уже отображается в HTML со всеми необходимыми параметрами. С привязкой 'options' вы должны предоставить массив объектов и позволить нокауту создавать HTML-код для вас. – crushjz