最近我做了很多knockoutjs,我遇到了一个奇怪的情况。
正如你在这个 fiddle 中看到的那样 http://jsfiddle.net/hqXjv/当您设置与 click: testMethod
的绑定(bind)时,单击按钮时会触发该操作。
正如你在这个 fiddle 中看到的那样 http://jsfiddle.net/kxTzM/当您将绑定(bind)设置为 click: testMethod('hi')
时,单击按钮和页面加载时都会触发该操作(我猜是在 applyBindings 上)
重现问题不需要参数,如果您将绑定(bind)更改为第一个 fiddle 中的 click: testMethod()
,您会看到它在页面加载时触发。
虽然,是的,我可以向元素添加另一个属性并尝试将其用作参数,但我的问题是,是否有一种方法可以将参数传递给 knockoutjs 绑定(bind)而不触发它们加载。如果这是一个错误,那就这样吧,但我只是想知道一种避免它的方法。
最佳答案
我认为此 knockout 页面上的“注释 2”说明了一切:
http://knockoutjs.com/documentation/click-binding.html
您可以通过使用以下方法来避免该问题:
匿名函数:
<button data-bind="click: function(data, event) { myFunction(data, event, 'param1', 'param2') }">Click me</button>
...或...
绑定(bind)方法:
<button data-bind="click: myFunction.bind($data, 'param1', 'param2')">Click me</button>
关于knockout.js - knockoutjs - 加载时触发的参数绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891282/