2015-10-05 127 views
1

,假設我們的選項數組包含對象,如本淘汰賽選項結合,嵌套optionsValue

{ 
    id: 1, 
    name: "Wisconsin", 
    attr: { 
     color: "red" 
    } 
} 
與淘汰賽綁定我們可以寫這樣的事情

所以,

<select data-bind=" 
    options:availableStates, 
    optionsText:'name', 
    optionsValue:'id', 
    value:selectedStateId"> 
</select> 

但是,如果我想要optionsValue = attr.color的值爲空

https://jsfiddle.net/xxhc9wwh/1/

+0

可能重複的[Javascript knockout綁定嵌套對象不工作](http://stackoverflow.com/questions/20503805/javascript-knockout-binding-nested-objects-not-working) –

回答

4

我們可以使用函數代替字符串來解決此問題。從淘汰賽的documentation

類似optionsText,你也可以通過所謂的optionsValue到指定對象的屬性應該被用來設置該KO產生<option>元素值屬性的附加參數。 您也可以指定一個JavaScript函數來確定此值。此函數將接收所選項目作爲其唯一參數,並返回一個字符串用於<option>元素的值屬性。

optionsValue: function(self) { return self.attr.color } 

JSFiddle demo

+0

非常感謝,這是工作大 – stackoverfloweth