Переключатель отключения valueAllowUnset

#knockout.js

#knockout.js

Вопрос:

Я знаю, что, вероятно, для этого сценария нет большого варианта использования, но мне интересно, есть ли способ переключить свойство valueAllowUnset в списке выбора? Есть один экземпляр, в котором я хочу разрешить установку значения параметра, которого нет в моем выпадающем списке, поэтому я хотел бы включить его и установить значение, когда этот экземпляр имеет значение true.

Ответ №1:

Да, вы можете это сделать. Нет причин, по которым вы не могли бы просто сохранить логическую переменную в своей viewmodel и ссылаться на нее в своей привязке, например:

 <select data-bind="
  options: options,
  value: selected,
  valueAllowUnset: allowUnset()">
</select>
  

(Вам нужно развернуть переменную вручную, так как KO не сделает этого за вас.)

Когда allowUnset значение true, вы можете установить selected значение, которого нет в options массиве; когда оно равно false, изменение отклоняется.

Скрипка для демонстрации: https://jsfiddle.net/thebluenile/jvz3m261 /