我无法理解为什么以下代码在Knockout中不起作用。
在javascript中,myFunction .bind( ... )应该返回一个函数,其中包含使用提供的参数调用FUNCTION1。我是对的吗?
理论上,以下代码应该有效,传递的参数'hey'应该由this.path.to.method函数接收。
但是,它没有,我得到类似ViewModel实例的东西,然后是事件对象。
我想知道它到底是做什么的,要知道我是否可以使用.bind或者我总是被迫将它包装在一个函数(){/ *任何调用这里... * /}在knockout绑定中点击”。
JSFiddle链接: http://jsfiddle.net/darknessm0404/X2yd7/
<a data-bind="click: path.to.method.bind('hey', $data)">
Why p1 and p2 do not receive the good parameters with arguments like ['hey', $data] when click happens?
</a>
function VM(){
// In my model, I am namespacing things this way:
this.path = {
to: {
method: function(p1, p2) {
console.log(((p1 === 'hey')?'First parameter is as expected':'First parameter is NOT as expected'));
debugger;
}
}
}
}
ko.applyBindings(new VM());
JSFiddle链接: http://jsfiddle.net/darknessm0404/X2yd7/
... data-bind =“click:function(){path.to.method('hey',$ data);}”
然而,它的可读性低于另一个。
.bind 来电,我不明白什么?
感谢您的帮助。