我正在将Title和Id的过滤值推送到我的getItem数组:
self.selectItem = ko.computed(function() {
return ko.utils.arrayFilter(self.loanItems(), function(item) {
if (item.Location() == self.userLocation() && item.LoanItem() == self.selectedLoanType() && item.Status() == "Available") {
self.getItem.push(item.Title(), item.Id());
}
});
});
然后在我看来我想填充我的选择输入,选择我想要将标题和标识显示为值:
<select data-bind="options: getItem,
optionsText: 'Title',
optionsValue: 'Id',
optionsCaption: 'Select an item...',
value: selectedLoanTitle">
</select>
上面不起作用,请参见下面的屏幕。
答案 0 :(得分:0)
在options
数据绑定中输入一个(可观察的)项目数组。 optionsText
和optionsValue
数据绑定引用了每个项目中的属性名称。
您构建数据绑定的方式要求getItem
数组包含Id
和Title
属性的项目。
在selectItem
方法中,您使用两个参数调用push
,我猜测它是出错的地方。你正在把两个(据称)字符串推到数组中。
尝试推动:
self.getItem.push(item)
)或self.getItem.push({ Title: item.Title, Id: item.Id })
)另请注意,selectedLoanTitle
最终会有Id
属性值,而不是Title
...