传回枚举字典时所选值不起作用
本文关键字:不起作用 枚举 字典 | 更新日期: 2023-09-27 18:37:18
我正在使用挖空数据绑定创建一个选项列表。基本上在我的服务器端我有一个枚举
public enum CarType
{
Saloon = 1,
Hatch = 2,
Convertable = 3,
SUV = 4
}
这基本上被创建到服务器端的字典中,并被发送回客户端。
因此,上面的枚举将作为具有键和值的对象返回到客户端。
我的视图模型是这样的:
this.carName= ko.observable();
this.carType = ko.observable();
我的选项绑定如下:
<select class="form-control" data-bind="options: $root.carTypes, optionsText: 'value', optionsValue: 'key', value: carType"></select>
所以基本上当我按下编辑按钮时,这个视图将在第一轮正确渲染。但是,如果我取消编辑页面并重新打开它,那么它会选择选项列表中的第一个元素。
不确定我是否做错了什么,或者淘汰赛与字典的行为是否不同?
返回的汽车类型对象是字典元素数组
示例[{key="1", value="Saloon"}, {key="2", value="Hatch"} .......
我不确定我是否理解你的问题。是否希望避免选择第一项?如果是这样,请查看文档中的optionsCaption
:http://knockoutjs.com/documentation/options-binding.html#parameters
选项标题
有时,您可能不希望通过以下方式选择任何特定选项 违约。但是单选下拉列表通常以一些开头 项目已选择,那么如何避免预先选择某些内容?通常的 解决方案是在选项列表前面加上一个特殊的虚拟选项 仅显示"选择一个项目"或"请选择一个选项"或 类似,并默认选择该选项。
这很容易做到:只需添加一个带有名称的附加参数 选项标题,其值是要显示的字符串。例如:
<select data-bind='options: myOptions, optionsCaption: "Select an item...", value: myChosenValue'></select>
KO将在项目列表前面加上显示文本的项目列表 "选择一个项目..."并且具有未定义的值。所以,如果我的选择值 保持值未定义(默认情况下可观察量这样做),然后 将选择虚拟选项。如果选项标题参数是 可观察,则初始项目的文本将更新为 可观察的值会发生变化。