Javascript 如何使用multi-select、knockout和Object使用选定项预先填充列表

Javascript 如何使用multi-select、knockout和Object使用选定项预先填充列表,javascript,html,object,knockout.js,Javascript,Html,Object,Knockout.js,我的多重选择中有一个使用敲除的对象列表。但是,当我尝试预先设置选择的对象时,没有任何显示为已选择。我需要做什么才能让火腿出现在我的例子中 HTML: JS Fiddle是我尝试做的一个例子。 好的,解决方案是这样的,您需要更改回写数组的方式 由此: this.selectedItems=ko.observearray([{Id:1,名称:“Ham”}]) 为此: this.selectedItems=ko.observableArray([1]) 此外,如果您想选择多个,您可以这样做: thi

我的多重选择中有一个使用敲除的对象列表。但是,当我尝试预先设置选择的对象时,没有任何显示为已选择。我需要做什么才能让火腿出现在我的例子中

HTML:

JS Fiddle是我尝试做的一个例子。

好的,解决方案是这样的,您需要更改回写数组的方式

由此:

this.selectedItems=ko.observearray([{Id:1,名称:“Ham”}])

为此:

this.selectedItems=ko.observableArray([1])


此外,如果您想选择多个,您可以这样做:


this.selectedItems=ko.observatarray([1,2])

您的小提琴不工作,未捕获引用错误:ko未在(索引)中定义:97已更新它。让我知道这是否对您有效。抱歉,这是因为我在JSFIDLE上使用https,并且敲除源文件是http。如果您将源文件更改为,它将在https.Gotcha上工作。应该这样做。试试看,如果不行就告诉我。太棒了,行了!非常感谢。现在我必须将值设置为ID。
<div class='liveExample'> 
    <p>Your values:</p>
    <select multiple="multiple" height="5" data-bind="options:allItems, selectedOptions:selectedItems, optionsText: 'Name', optionsValue: 'Id'"> </select>
</div>
var BetterListModel = function () {
    this.allItems = ko.observableArray([{Id: 1, Name: "Ham"}, {Id: 2, Name: "Cheese"}]); // Initial items
    this.selectedItems = ko.observableArray([{Id: 1, Name: "Ham"}]);                                // Initial selection

};

ko.applyBindings(new BetterListModel());