在按钮单击上设置可观察值

时间:2017-06-29 10:03:32

标签: knockout.js

在我的页面上,我想跟踪用户在obdervable中点击的按钮:

self.action = ko.observable();

我可以编写一个函数setAction并在每次单击按钮时使用参数调用它,如下所示:

self.setAction = function (action) {
  self.action(action);
}

但是我想知道是否有办法在没有每次调用setAction功能的情况下进行此操作?

1 个答案:

答案 0 :(得分:2)

你可以内联:

<button type="button" class="btn" data-bind="click: action.bind($data, 'btn-name')">btn-name</button>

或传递实际的按钮对象

<button type="button" class="btn" data-bind="click: action.bind($data, this)">btn-name</button>

或者,如果您的问题是每次都必须编写此单击事件,则可以为每个按钮添加一个类,并添加一个事件侦听器来设置操作。

<button type="button" class="btn actionBtn">btn-name</button>

$(".actionBtn").click(function(){
     var btn = $(this);
     viewModel.action(btn);
});