在某些情况下,我有一个项目列表,对于每个项目,我需要显示一个下拉列表来编辑特定字段
发生的情况是,当我编辑选择并保存时,更改已正确绑定并保存。
但是当我第一次加载页面时,所有选择都反映了第一项(该值将被忽略)
<tbody data-bind="foreach: Model.Items">
///something
<select data-bind="value: Fieldvalue,options: $root.optionslist, optionsValue: 'Id', optionsText: 'Name'"></select>
///something
</tbody>
答案 0 :(得分:0)
这里是一个示例,其中我设置初始值,然后加载DOM并绑定值。它按预期工作。您的问题可能出在您未显示给我们的代码的其他部分。
var viewmodel = function(){
this.Model = {
Items: [
{Fieldvalue: ko.observable(2)},
{Fieldvalue: ko.observable(3)}
]
};
this.optionslist = [
{Id: 1, Name: 'option 1'},
{Id: 2, Name: 'option 2'},
{Id: 3, Name: 'option 3'}
];
};
ko.applyBindings(new viewmodel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="foreach: Model.Items">
<select data-bind="value: Fieldvalue,
options: $root.optionslist,
optionsValue: 'Id',
optionsText: 'Name'"></select>
</div>