理论选择价值和淘汰价值

时间:2014-05-09 03:53:33

标签: knockout.js

我在敲击数据绑定中使用了optionsValue和value。但是,我真正想要的是,如果我想预先选择一个项目,我应该(至少我认为)能够填充赋值给它的变量,它应该给我一个预先选择的项目。但是,它在开始时似乎未定义。显然我误解了一些事情。我做错了什么。

<select data-bind="options: lookupgender, optionsText: 'description', optionsValue: 'code', value: choice,optionsCaption: '-Gender-'"></select>

整个代码都在fiddle中,我希望这会选择&#34;女性&#34;。

2 个答案:

答案 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); 
};