如何确定所选行

时间:2015-03-26 13:04:19

标签: knockout.js

我有一个像这样绑定的表:

<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知道当用户单击链接时选择了哪个项目。

我该怎么做?

格雷格

1 个答案:

答案 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);
    }
});