我有一个如下列表:
<ul id="blogList" data-bind="foreach: Data">
<li>
<span data-bind="text: Title"> </span>
<a href="#" data-bind="click: $parent.viewEntry">View</a>
</li>
</ul>
淘汰视图模型如下:
var ViewModel = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
this.currentSelected = ko.observable();
self.viewEntry = function () {
currentSelected = this;
}
};
将currentSelected设置为this似乎不起作用,因为当我尝试在其他地方绑定到currentSelected时,我什么也没发生:
<h2 data-bind="text: currentSelected.Title"></h2>
这是绑定到currentSelected的正确方法吗?该列表工作正常,但设置currentSelected并绑定到它是不行的。
答案 0 :(得分:0)
首先让我们看看你的viewEntry
方法。
self.viewEntry = function () {
currentSelected = this;
}
currentSelected
未定义它应该是self.currentSelected
,因为这是一个可观察的,你不应该将它设置为具有等号的var
,而是将其视为函数,因此它应该是{{} 1}}
另一件事是在这部分内部绑定:
self.currentSelected(this)
这又是一个对象,所以要访问它的属性,你需要使用<h2 data-bind="text: currentSelected.Title"></h2>
作为函数,所以它应该是
currentSelected
在这里您可以找到一个工作样本:https://jsfiddle.net/jz9t5vbo/