绑定下拉列表的初始选择有问题,如果指定" optionValue",一切都会好的,但是如果指定了这个,那么在选择更改后,它只会返回值而不是整个值对象,这就是我想要的,返回整个对象,如下所示: http://jsfiddle.net/Princa/tuMta/109/
那么如何在不指定' optionValue'的情况下绑定初始值?
selectedCountry: ko.observable(new Country("Sweden", 29000000)),
但它没有工作
答案 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);
};