Javascript 敲除下拉列表选择将名称/值对数组绑定到ObservalArray

Javascript 敲除下拉列表选择将名称/值对数组绑定到ObservalArray,javascript,mvvm,knockout.js,Javascript,Mvvm,Knockout.js,我在学习击倒时遇到了一个关于下拉绑定的问题。基本上,它是一个可以附加1个或多个诊断代码的患者模型 如果您查看我的JSFIDLE,我有一个具有名称/值对(axis1items)的对象,它保存选择列表项。我还有一个ObservalArray,它保存所有结果(patientDiags),然后将这些结果序列化为JSON 选择项目时,该值设置为axis1items项目,并序列化为: "DiagnosisID":{"dxname":"(V71.81) Abuse and neglect","dxvalue"

我在学习击倒时遇到了一个关于下拉绑定的问题。基本上,它是一个可以附加1个或多个诊断代码的患者模型

如果您查看我的JSFIDLE,我有一个具有名称/值对(axis1items)的对象,它保存选择列表项。我还有一个ObservalArray,它保存所有结果(patientDiags),然后将这些结果序列化为JSON

选择项目时,该值设置为axis1items项目,并序列化为:

"DiagnosisID":{"dxname":"(V71.81) Abuse and neglect","dxvalue":549}
我希望最终序列化结果仅为dxvalue:

"DiagnosisID": 549
我假设这可以通过使用计算值、更改viewmodels的结构或


此外:任何关于如何改进我的代码的其他建议都将不胜感激

您就快到了,只需将
选项value
设置为
'dxvalue'
属性,其中

选项text
类似,您还可以传递一个名为
选项值
的附加参数,以指定应使用哪些对象的属性来设置KO生成的
元素的
属性

因此,您的
选项
绑定应该如下所示:

<select data-bind="options: $root.axis1items, 
                   optionsText: 'dxname', 
                   optionsValue: 'dxvalue', 
                   value: DiagnosisID" class="form-control required">
</select>


演示。

你的js小提琴有一些js错误,无法查看。抱歉,我发布了一个旧链接。我用正确的链接更新了帖子。