我有这个select
:设置默认值,如果没有值
<select data-bind="options: $root.users(), optionsText: 'name', optionsValue: 'id', value: $root.selectedUser, optionsCaption: 'Select one'"></select>
我只需要如果$root.selectedUser = 0
否则我不需要的默认值要选择的默认值(“选择一个”)。
我试过:
<select data-bind="options: $root.users(), optionsText: 'name', optionsValue: 'id', value: $root.selectedUser, optionsCaption: $root.selectedUser() === 0 ? 'Select one' : ''"></select>
但它不工作。 (如果$root.selectedUser = 0
它显示列表的第一个值而不是默认值。)
有关如何实现该目标的任何想法?
我无法重现您的错误:http://jsfiddle.net/ogLpxc0L/1/。你能更新小提琴吗? –
@JoseLuis谢谢,我发现是什么原因导致了这个问题:'selectedUser'无法获得'0'值,当我将它设置为'0'值时,它会得到'undefined'。为什么'selectedUser'不能是'0'?我添加了一个'console.log()到小提琴。 – user3378165
在小提琴的更新(http://jsfiddle.net/ogLpxc0L/4/)中,您可以选择'0'。我添加了一行“Selected”,以显示所选的实际值。另外,我将第一个用户更改为id = 0。在此链接(http://knockoutjs.com/documentation/options-binding.html)中,它表示“未定义”值显示默认选项。 –