我对淘汰赛还很陌生,并试图了解一些绑定应该如何工作。
我认为我可以在不需要 with 的情况下在正常绑定中引用一个可观察的子对象,但我无法让它工作。
我的模型和视图模型是;
Model = function(name) {
this.name = ko.observable(name);
};
ViewModel = function () {
var list = ko.observableArray([new Model("Apple"), new Model("Pear")]),
selectedItem = ko.observable();
function selectItem(item) {
selectedItem(item);
}
return {
list: list,
selectedItem: selectedItem,
selectItem: selectItem
};
};
这是绑定:
<div id="content">
<ul id="list" data-bind="foreach: list">
<li data-bind="text: name, click: $parent.selectItem"></li>
</ul>
</div>
<p>Will show selected item</p>
<div data-bind="with: selectedItem">
<span data-bind="text: name"></span>
</div>
<div>
<p>Won't show selected item</p>
<span data-bind="text: selectedItem().name()"></span>
</div>
或者,这里有一个工作小提琴。
据我了解,我应该能够看到一个值,selectedItem().name
但应用绑定会引发错误,但是如果 div 具有with: selectedItem
绑定,它可以完美地工作。
我没有选择,只能with
在这种情况下使用绑定吗?