Javascript 使用knockout.js在select上使用值绑定更新整个对象?

Javascript 使用knockout.js在select上使用值绑定更新整个对象?,javascript,knockout.js,mapping,observable,Javascript,Knockout.js,Mapping,Observable,我有一个选择下拉菜单,它显示一个对象列表,name属性是显示的文本,id属性是每个选项绑定到的值,value:user.id绑定来自另一个对象上的单独属性 <td data-bind=""><select data-bind="options: peopleResponsible, optionsText: 'name', optionsValue: 'id', value: user.id"></select></td> 其中任务大纲包含许多任

我有一个选择下拉菜单,它显示一个对象列表,
name
属性是显示的文本,
id
属性是每个选项绑定到的值,
value:user.id
绑定来自另一个对象上的单独属性

<td data-bind=""><select data-bind="options: peopleResponsible, optionsText: 'name', optionsValue: 'id', value: user.id"></select></td>
其中
任务大纲
包含许多
任务
,每个
任务
包含一个
用户


有什么想法吗?

绑定的
值只设置一个可观察值。由于不知道这些东西是如何使用的,很难说你应该做什么才能得到你想要的结果。一种可能性是创建一个函数,用于复制和订阅
用户.id

您可以执行以下操作:

var-vm={
负责人:柯·阿雷([{
id:ko.可观察(1),
名称:ko.可观测(“p1”)
}, {
id:ko.可观察(2),
名称:ko.可观察(“p2”)
}, {
id:ko.可观察(3),
名称:ko.可观察(“p3”)
}]),
selectedUser:ko.observable()
}
vm.selectedUser(vm.peopleResponsible()[1]);//预先选择一个用户
ko.应用绑定(vm)

身份证:

姓名:


好的,谢谢,这看起来确实绑定了整个
selectedUser
对象,但它最初并没有绑定正确的对象(即,当我已经选择了预设用户时),我如何修复它?我已更新了答案以包含演示。本演示还向您展示了如何预选用户。请尝试设置小提琴,这样很容易修复。干杯
ko.mapping.fromJS(taskOutlines, {}, mappedTaskOutlines);