2014-01-28 18 views
0

在我来说,我有一个包含一个视图模型:

  • 收集与ID /名称对象
  • 收集其中一个属性(分配任务)点到用户名ID任务的用户名

我想显示任务列表,并为每个任务显示下拉可用的用户名并标记当前选中的一个。因此视图模型看起来如:

var viewmodel = { 
    usernames: ko.observableArray([ { id: 1, name: "Foo" }, { id: 2, name: "Bar" } ]), 
    tasks: ko.observableArray([ { project_id: 1, name: "First", assignee: 1 } ]) 
} 

现在,我愿做这样的事情:

<ul data-bind="projects"> 
    <li> 
     <span data-bind="name" /> 
     <select data-bind="$root.usernames"> 
      <option data-bind="attr: { value: id }, text: name" /> 
     </select> 
    </li> 
</ul> 

我的问题是如何写数据绑定语句<option>元素,因此将创建selected属性这只有在username.idtask.assignee相同的情况下才是正确的。

回答

0

您可以互换使用它们 -

<select data-bind="options: $root.usernames, optionsText: 'name', optionsValue: 'id', value: $parent.selectedUser"> 
</select> 

你并不需要显式地指定的选项类似,使用optionsText和optionsValue绑定,并使用值绑定,以显示你要选择什么。