我在学习Knockout时遇到了麻烦,我遇到了一个处理下拉式绑定的问题。基本上它是一个患者的模型,可以附加一个或多个诊断代码。
如果你看看我的jsfiddle,我有一个名称/值对(axis1items)的对象,它包含选择列表项。我还有一个observablearray,其中包含所有结果(patientDiags),然后将其序列化为JSON。
选择项目时,该值将设置为axis1items项目,并将其序列化为:
"DiagnosisID":{"dxname":"(V71.81) Abuse and neglect","dxvalue":549}
我希望最终的序列化结果只是dxvalue:
"DiagnosisID": 549
我认为可以使用计算值轻松完成此操作,更改视图模型的结构,或some other knockout specific template keyword that I am overlooking?
此外:非常感谢有关如何改进我的代码的任何其他建议!
答案 0 :(得分:2)
你几乎就在那里,你只需要将optionsValue
设置为'dxvalue'
属性optionsValue
parameter
与
optionsText
类似,您还可以传递名为optionsValue
的其他参数,以指定应使用哪些对象的属性来设置value
属性<option>
KO生成的元素。
所以你的options
绑定应该是这样的:
<select data-bind="options: $root.axis1items,
optionsText: 'dxname',
optionsValue: 'dxvalue',
value: DiagnosisID" class="form-control required">
</select>
演示JSFiddle。