已选择Knockout.js下拉绑定

时间:2014-04-25 18:05:25

标签: knockout.js

绑定下拉列表的初始选择有问题,如果指定" optionValue",一切都会好的,但是如果指定了这个,那么在选择更改后,它只会返回值而不是整个值对象,这就是我想要的,返回整个对象,如下所示: http://jsfiddle.net/Princa/tuMta/109/

那么如何在不指定' optionValue'的情况下绑定初始值?

selectedCountry: ko.observable(new Country("Sweden", 29000000)),

但它没有工作

2 个答案:

答案 0 :(得分:2)

optionValue设置仅适用于未选择任何项目时选择列表中显示的“占位符”值。

如果您希望将选择默认为列表中的项目,请通过将selectedCountry变量设置为有效值,在视图模型中自行执行此操作。

来自你的jsfiddle的例子(在这里更新:http://jsfiddle.net/tuMta/110/):

viewModel.selectedCountry(viewModel.availableCountries()[1]);

答案 1 :(得分:1)

问题在于,即使你创建的2个类都是瑞典语,js也不知道,所以你必须让它知道。试试这个:

var viewModel = function () { 
var defaultSelected = new Country("Sweden", 29000000);
this.availableCountries = ko.observableArray([
    new Country("UK", 65000000),
    new Country("USA", 320000000),
    defaultSelected]);
this.selectedCountry= ko.observable(defaultSelected); 
};

http://jsfiddle.net/tuMta/120/