我有以下内容:
<select data-bind="options: colorOptions, optionsText: 'DisplayName', optionsValue: 'Id', value: Color.Id, optionsCaption: 'Select...'"
colorOptions
看起来像这样
[
{
"DisplayName": "Blue",
"Id": 22028
},
{
"DisplayName": "Yellow",
"Id": 22029
}
]
Color
看起来像这样(具有可观察属性的对象):
{
"DisplayName": "Blue",
"Id": 22028
}
这似乎有效,除了当我进行更改时颜色上的DisplayName没有更新的事实 - 只有Id是。我是否必须手动重新分配DisplayName,还是可以告诉knockout替换整个对象?
答案 0 :(得分:0)
使用此绑定处理程序进行更改时,仅设置了值,并且由于您已将Color.Id指定给值,因此更改选项时会更新此值。
您已将optionsValue设置为&#39; Id&#39;告诉绑定处理程序该值来自数据源上的Id属性,因此如果要更新整个Color属性,则需要执行以下操作
optionsValue: 'Id'
这意味着该值设置为数组中的整个项目,而不是单个属性value: Color.Id
更新为value: Color