Knockout.js 敲除-使用附加参数绑定事件
我有一个组成导航菜单的链接列表。我正在尝试将tap事件绑定到a标记 这是htmlKnockout.js 敲除-使用附加参数绑定事件,knockout.js,Knockout.js,我有一个组成导航菜单的链接列表。我正在尝试将tap事件绑定到a标记 这是html <a data-bind="event: { tap: $parent.menuClick.bind($index, $data.menuText, $data.menuValue) }"> 这不起作用。当我在menuClick函数中插入断点时,我看到参数值完全乱了套 menuIndex参数包含菜单项的文本。 menuText参数具有菜单项的值 menuValue参数具有敲除$data对象 有人能告诉
<a data-bind="event: { tap: $parent.menuClick.bind($index, $data.menuText, $data.menuValue) }">
这不起作用。当我在menuClick函数中插入断点时,我看到参数值完全乱了套
menuIndex参数包含菜单项的文本。
menuText参数具有菜单项的值
menuValue参数具有敲除$data对象
有人能告诉我如何正确传递参数吗
谢谢。函数的第一个参数是。因此,menuText最终显示为menuIndex参数,依此类推。在其位置传递其他内容,例如视图模型
<a data-bind="event: {
tap: $parent.menuClick.bind($root, $index, $data.menuText, $data.menuValue)
}">...</a>
要绑定的第一个参数是在被调用函数中用作此参数的值。因此,您可能希望绑定如下所示:
event: { tap: $parent.menuClick.bind($parent.menuClick, $index, $data.menuText, $data.menuValue) }
或者,您可能对允许您为事件运行表达式的感兴趣:
on.tap: $parent.menuClick($index, $data.menuText, $data.menuValue)
这两种方式都不重要,这是不正确的。bind调用中指定的值始终优先,并且在使用call或apply时不会像Knockout那样被覆盖。没错,我误解了我在测试中看到的内容。
on.tap: $parent.menuClick($index, $data.menuText, $data.menuValue)