我有select
:
<select data-bind="options: $root.users(), optionsText: 'name', optionsValue: 'id', value: $root.selectedUser, optionsCaption: 'Select one'"></select>
我只需要$root.selectedUser = 0
选择默认值(&#39;选择一个&#39;),否则我不需要默认值。
我试过了:
<select data-bind="options: $root.users(), optionsText: 'name', optionsValue: 'id', value: $root.selectedUser, optionsCaption: $root.selectedUser () === 0 ? 'Select one' : ''"></select>
但它没有用。 (如果$root.selectedUser = 0
它显示列表的第一个值而不是默认值。)
关于如何实现这一点的任何想法?
答案 0 :(得分:1)
如果这个ModelView:
var User = function(id, name) {
this.name = name;
this.id = id;
};
var viewModel = {
users : ko.observableArray([
new User(0,"User 1"),
new User(2,"User 2"),
new User(3,"User 3")
]),
selectedUser : ko.observable(0)
};
ko.applyBindings(viewModel);
我的用户ID为Id。
如果您在observable中保存任何Id值,它会选择此选项。所有这些都将选择一个选项:
selectedUser : ko.observable(0)
selectedUser : ko.observable(2)
selectedUser : ko.observable(3)
如果您保存任何值,或undefined
,则会显示默认选项。
此fiddle显示了此示例。