我有一个像这样绑定的表:
<tbody data-bind="foreach: reportItems">
<tr>
<td><a data-bind="text: OrderPostCloseStatusName" data-toggle="modal" data-target="#editStatus"></a></td>
</tr>
</tbody>
这可以在单击链接时显示Bootstrap模型。但是,我需要知道哪个项目已被点击,以便我可以在模型中显示相应的数据。例如,我希望ViewModel上的一个名为selectedItemId的属性以某种方式绑定,以便viewModel知道当用户单击链接时选择了哪个项目。
我该怎么做?
格雷格
答案 0 :(得分:1)
在viewmodel中创建一个新的observable:
self.selectedItem = ko.observable();
在链接中添加click binding:
<td><a data-bind="text: OrderPostCloseStatusName, click: $root.selectedItem" data-toggle="modal" data-target="#editStatus"></a></td>
现在,如果你想要一个具有所选id的观察者,你可以创建一个计算:
self.selectedItemId = ko.computed(function() {
var selectedItem = ko.unwrap(self.selectedItem);
if (selectedItem) {
return ko.unwrap(selectedItem.id);
}
});