我想在 KnockoutJS 中创建一个“条件点击”绑定。基本上,这是一个标准的点击绑定,就像您在 Knockout 中使用它一样,但是需要满足一个条件才能执行附加的功能。就我而言,最好的选择是创建一个自定义绑定处理程序,然后如果允许,您可以在其中调用标准点击绑定。
ko.bindingHandlers.safeClick = {
'init': function(element, valueAccessor, allBindingsAccessor, context) {
$(element).click(function() {
if(mycondition == true) {
// call the standard click binding here -> this is the part I don't know
}
});
}
}
我想用这个自定义绑定替换我所有的标准点击绑定。因此,以正确的方式调用点击绑定很重要,因此 HTML 中提供的所有参数都会传递给函数。例如:
<a href="#" data-bind="click: basevm.gotopage.bind($data, '#homepage')">Home</a>
<a href="#" data-bind="click: itemvm.activateItem">Activate</a>
这些需要替换为
<a href="#" data-bind="safeClick: basevm.gotopage.bind($data, '#homepage')">Home</a>
<a href="#" data-bind="safeClick: itemvm.activateItem">Activate</a>
如果您能帮助我解决自定义绑定中缺少的部分,我将不胜感激。