我做错了什么?我正在尝试创建一个简单的主要详细信息视图和'规范MVVM'示例。
这是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>
答案 0 :(得分:3)
你真的很亲密。只需要value: selectedItem().name
或更好地使用with
绑定来更改范围。此外,您引用的脚本稍微过时(在2.0点击中将数据作为第一个arg传递)。