【问题标题】:Click preprocessing with knockoutjs使用 knockoutjs 进行点击预处理
【发布时间】:2014-02-14 23:22:51
【问题描述】:

当用户单击与 knockoutjs 绑定的内容时,我试图要求用户确认(通过 data-bind="click: ..)

我发现了一个名为预处理的东西,但我没有让它工作。 这是我不工作的解决方案

ko.bindingHandlers.click.preprocess = function(val) {
    confirm("Are you sure do you want to click that?");
}

链接:JSFiddle

PS。看看这个LINK上的示例nr.2

【问题讨论】:

    标签: javascript jquery data-binding knockout.js


    【解决方案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(); }"

    【讨论】:

      【解决方案2】:

      你没有正确地按照这个例子,注意这个例子返回一个函数作为一个字符串:

      ko.bindingHandlers.click.preprocess = function(val) {
          return 'function(){ console.log(123); }'
      }
      

      我已经编辑了您的 Fiddle 以显示它有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-19
        • 1970-01-01
        • 2017-01-12
        • 2017-01-20
        • 1970-01-01
        • 1970-01-01
        • 2020-01-07
        相关资源
        最近更新 更多