Ответ 1
Вот решение. Вы должны добавить атрибут optionsValue: 'id'
к привязке данных.
Вы также должны поместить в функцию функцию viewModel, которая возвращает выбранный объект.
HTML
<select data-bind="options: items, optionsText: 'name', optionsValue: 'id', value: selectedItemId"></select>
<span data-bind="text: selectedItem().name"></span>
JS
var viewModel = function () {
this.items = ko.observableArray([
{ id: 1, name: "Apple" },
{ id: 2, name: "Orange"},
{ id: 3, name: "Banana"}
]);
this.selectedItemId = ko.observable(3);
this.selectedItem = function() {
var self = this;
return ko.utils.arrayFirst(this.items(), function(item) {
return self.selectedItemId() == item.id;
});
}.bind(this);
};
var vm = new viewModel();
ko.applyBindings(vm);
Ура!