我最近做了很多淘汰赛,我遇到了一个奇怪的事情.
正如你在这个小提琴http://jsfiddle.net/hqXjv/中看到的那样,当你设置一个绑定click: testMethod时,当单击该按钮时动作会触发.
正如你在这个小提琴http://jsfiddle.net/kxTzM/中看到的那样当你设置对click: testMethod('hi')动作的绑定时,单击按钮和页面加载时都会触发(我猜是在applyBindings上)
有一个参数不是重现问题的必要条件,如果您click: testMethod()在第一个小提琴中更改绑定,您会看到它是在页面加载时触发的.
虽然,是的,我可以为元素添加另一个属性并尝试将其用作参数,我的问题是,有没有办法将参数传递给knockoutjs绑定而不触发它们onload.如果这是一个错误,那么就这样吧,但我只是想知道一种避免它的方法.
Mar*_*son 96
我认为这个淘汰页面上的"注2"解释了这一切:
http://knockoutjs.com/documentation/click-binding.html
您可以通过以下方式避免此问题:
匿名功能:
<button data-bind="click: function(data, event) { myFunction(data, event, 'param1', 'param2') }">Click me</button>
Run Code Online (Sandbox Code Playgroud)
... 要么 ...
绑定方法:
<button data-bind="click: myFunction.bind($data, 'param1', 'param2')">Click me</button>
Run Code Online (Sandbox Code Playgroud)
atr*_*eon 22
以下执行加载时的单击功能
click: clickSpan()
Run Code Online (Sandbox Code Playgroud)
删除括号如下,该函数未执行onload
click: clickSpan
Run Code Online (Sandbox Code Playgroud)
(这在上面的注释2中解释,但它是隐秘的形式:-)
| 归档时间: |
|
| 查看次数: |
24027 次 |
| 最近记录: |