2014-01-28 19 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綁定,並使用值綁定,以顯示你要選擇什麼。