敲除 valueAllowUnset 切换

Knockout valueAllowUnset toggle

我知道这种情况可能没有很大的用例,但我想知道是否有办法在 select 列表上切换 valueAllowUnset 属性?在一个实例中,我想允许设置一个不在我的下拉列表中的选项值,所以我想打开它并在该实例为真时设置该值。

是的,你可以做到。您没有理由不能只在视图模型上存储一个布尔变量并在您的绑定中引用它,就像这样:

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

(您确实需要手动解包变量,因为 KO 不会为您这样做。)

allowUnset 为真时,您可以将 selected 设置为不在 options 数组中的值;当它为 false 时,更改被拒绝。

Fiddle 演示:https://jsfiddle.net/thebluenile/jvz3m261/