当我点击与knockoutjs绑定的内容时,我正在尝试让用户确认(通过data-bind =“click:..)
我发现了一些名为预处理的东西,但我没有让它发挥作用。 这是我的工作解决方案
ko.bindingHandlers.click.preprocess = function(val) {
confirm("Are you sure do you want to click that?");
}
link:JSFiddle
PS。请查看此LINK
上的示例nr.2答案 0 :(得分:1)
对于调用函数,您添加到data-bind="click: ..."
绑定并执行任何其他代码,您可以使用以下内容:
ko.bindingHandlers.click.preprocess = function (value) {
return 'function() { console.log("Preprocess Click!"); ' + value + '(); }'
};
preprocess
返回的所有内容都会粘贴到data-bind="click: ..."
,因此如果您在预处理后编写data-bind="click: Click"
,则会转换为:data-bind="click: function() { console.log('Preprocess Click!'); Click(); }"
。
答案 1 :(得分:0)
您没有正确地遵循示例,请注意该示例将函数作为字符串返回:
ko.bindingHandlers.click.preprocess = function(val) {
return 'function(){ console.log(123); }'
}
我已修改您的Fiddle以显示其正常工作