如何使用knockoutjs在单击函数中传递固定参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用knockoutjs在单击函数中传递固定参数?相关的知识,希望对你有一定的参考价值。

我想这样做:

  <button type="button"  data-bind="click: myFunction(1)" </button>
   <button type="button"  data-bind="click: myFunction(2)" </button>
  <button type="button"  data-bind="click: myFunction(3)" </button>

但如果我每次页面启动都这样做,这个函数就会被触发。我不想要这个,我希望它在我点击时触发

答案

myFunction.bind绑定中使用click可以解决问题。你可以试试这个:

<button type="button" data-bind="click: myFunction.bind($data, 1)">one</button>
<button type="button" data-bind="click: myFunction.bind($data, 2)">two</button>
<button type="button" data-bind="click: myFunction.bind($data, 3)">three</button>

在View Model中定义myFunction,如下所示:

self.myFunction = function(n) {
    alert(n);
}

仅响应实际按钮点击而不是页面加载时才会触发警报。

请注意,虽然self.myFunction定义只有一个参数myFunction.bind($data, 1)应该有额外的$data参数。

以上是关于如何使用knockoutjs在单击函数中传递固定参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 knockoutJs 将参数 foreach 从 html 传递到控制器

将 knockoutjs 视图模型传递给多个 ajax 调用

在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?

Knockout js - 如何在两个 javascript 文件之间传递值

Lua极简入门(六)——函数的参数

变参函数和可变参数宏