Knockout.js 敲除-设置选择的初始值

Knockout.js 敲除-设置选择的初始值,knockout.js,Knockout.js,我的代码中所选值的范围最初似乎没有填充。谁能告诉我这是为什么 小提琴: 我的HTML: <div> Disable: <span data-bind="text: options[1].text"></span><input type="checkbox" data-bind="checked: options[1].disable" /> <span data-bind="text: options[2].text"></s

我的代码中所选值的范围最初似乎没有填充。谁能告诉我这是为什么

小提琴:

我的HTML:

<div>
Disable:
 <span data-bind="text: options[1].text"></span><input type="checkbox" data-bind="checked: options[1].disable" />
 <span data-bind="text: options[2].text"></span><input type="checkbox" data-bind="checked: options[2].disable" />
 <span data-bind="text: options[3].text"></span><input type="checkbox" data-bind="checked: options[3].disable" />
</div>
<div>
<select data-bind="value: selectedValue">
 <option data-bind="value: options[0].text, text: options[0].text"></option>
 <option data-bind="value: options[1].text, text: options[1].text, disable: options[1].disable"></option>
 <option data-bind="value: options[2].text, text: options[2].text, disable: options[2].disable"></option>
 <option data-bind="value: options[3].text, text: options[3].text, disable: options[3].disable"></option>
</select>
</div>
<span data-bind="text: selectedValue"></span>

编辑:正如nemesv在评论中所说:“当没有填充选项值时,
selectedValue
绑定会运行,该选项值会将
selectedValue
重置为
null

从另一个问题中,我得出以下结论:

<select data-bind="foreach: options, value: selectedValue">
    <option data-bind="text: text, value: text, disable: disable"></option>
</select>


我还更改了复选框中的一些内容,使其更具可读性。请参阅完整示例。

为什么不使用绑定来填充select?如果您能告诉我一种通过绑定禁用选项的方法,我很乐意!的确我看不到使用选项的方法。这里是另一个使用foreach的解决方案:导致原始问题的是数据绑定执行的顺序。当没有填充选项值时,
selectedValue
绑定将运行,该选项值将
selectedValue
重置为
null
。您的解决方案很好地解决了这个问题。谢谢,我想可能是这样,但不是完全确定。我将编辑我的答案,以便每个人都能轻松看到这些信息。
<select data-bind="foreach: options, value: selectedValue">
    <option data-bind="text: text, value: text, disable: disable"></option>
</select>