的財產,是可以綁定到來自服務器的JSON對象的子對象的屬性?特別是,如果我給來自看起來像這樣的服務器對象:綁定文本使用knockout.js子對象
var obj = {
list: [ { key: "a", value: 1 },
{ key: "b", value: 2 },
{ key: "c", value: 3 }
],
selected: {
key: "",
value: null
}
};
我從這個JavaScript對象通過「映射」插件創建一個視圖模型:
var viewModel = ko.mapping.fromJS(obj);
我綁定list
到<select>
標籤,像這樣:
<select data-bind="options: list, optionsText: 'key',
optionsValue: 'value',
value: selected">
</select>
我分配的值是我的ViewModel的selected
財產。這意味着,在選擇一個選項,我能夠成功查詢viewModel.selected.key()
和viewModel.selected.value()
代碼,並獲得向上的最新值。
但是,我無法將所選項目的key
或value
數據綁定到跨度上顯示。例如,這不顯示我選擇的值:
<span data-bind="text: selected.value"></span>
我可以做我想做的嗎?我是否需要求助於使用真正簡單的模板來建立適當的上下文(即:selected
)?
我的情況here一個例子。我甚至嘗試過專門將孩子映射爲可觀察對象本身,但沒有運氣(請參閱使用附加選項註釋映射調用)。
好極了,正是我一直在尋找的 - 我懷疑它要來自你。 =)很高興知道我在正確的軌道上做出選擇,本身也是可觀察的。我認爲建立'optionsValue'參數 - 意外 - 是情況的關鍵。再次感謝! – kdawg