2011-12-24 145 views
1

我在做什麼錯?我正在嘗試創建一個簡單的主詳細信息視圖,以「規範的MVVM」爲例。Knockout JS中的主要詳細信息

下面是的jsfiddle一個簡單的例子不工作:http://jsfiddle.net/UJYXg/2/

我希望看到在文本框中選擇「項目」的名義,而是它說:「觀察到的」?

這裏是我的問題的代碼:

var list = [ { name: "item 1"} , { name: "Item 2" }]; 

var viewModel = { 
    items : ko.observableArray(list), 
    selectedItem : ko.observable(), 
} 

viewModel.setItem = function(item) { 
    viewModel.selectedItem(item); 
} 

ko.applyBindings(viewModel); 

和HTML

<ul data-bind="foreach: items"> 
    <li> 
     <button data-bind="click: $root.setItem, text:name"></button> 
    </li> 
</ul> 

<p> 
    <input data-bind="value:selectedItem.name" /> 
</p> 

回答

3

你真的很接近。只需要做value: selectedItem().name或更好地使用with綁定來改變你的範圍。另外,您所引用的腳本稍微過時(在2.0中,點擊將數據作爲第一個參數傳遞)。

樣品在這裏:http://jsfiddle.net/rniemeyer/acUDH/