我在敲击数据绑定中使用了optionsValue和value。但是,我真正想要的是,如果我想预先选择一个项目,我应该(至少我认为)能够填充赋值给它的变量,它应该给我一个预先选择的项目。但是,它在开始时似乎未定义。显然我误解了一些事情。我做错了什么。
<select data-bind="options: lookupgender, optionsText: 'description', optionsValue: 'code', value: choice,optionsCaption: '-Gender-'"></select>
整个代码都在fiddle中,我希望这会选择&#34;女性&#34;。
答案 0 :(得分:1)
切换它:
this.choice = choices[1];
对此:
this.choice = ko.observable(choices[1].code);
或者就是这样:
this.choice = ko.observable('F');
有两个问题:
choice
不是可观察的,这意味着不能在基础值和所选选项之间形成绑定。choice
的初始值是整个对象{ code: 'F', description: "Female" }
。但您将code
指定为optionsValue
,因此choice
应该包含值'F'
或'M'
。答案 1 :(得分:1)
您需要稍微更改语法:
function ViewModel(choices) {
this.lookupgender = ko.observableArray(choices);
this.choice = ko.observable(choices[1].code);
};