Knockout.js 敲除值AllowUnset开关

Knockout.js 敲除值AllowUnset开关,knockout.js,Knockout.js,我知道这个场景可能没有什么大的用例,但我想知道是否有一种方法可以在选择列表上切换valueAllowUnset属性?有一个实例中,我希望允许设置下拉列表中没有的选项值,因此我希望在该实例为真时将其打开并设置值。是的,您可以这样做。没有理由不在viewmodel上存储一个布尔变量并在绑定中引用它,如下所示: <select data-bind=" options: options, value: selected, valueAllowUnset: allowUnset

我知道这个场景可能没有什么大的用例,但我想知道是否有一种方法可以在选择列表上切换valueAllowUnset属性?有一个实例中,我希望允许设置下拉列表中没有的选项值,因此我希望在该实例为真时将其打开并设置值。

是的,您可以这样做。没有理由不在viewmodel上存储一个布尔变量并在绑定中引用它,如下所示:

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

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

allowUnset
为true时,您可以将
selected
设置为
选项
数组中不存在的内容;如果为false,则拒绝更改

用小提琴演示: