数据绑定点击甚至将当前对象传递给参数

Data bind click even pass current object to parameter

我正在遍历对象,我只想在单击时发送当前对象。

<div class="box" data-bind="foreach: contacts">
                <div class="contact LightGray-background">
                    <div class="contactType">
                        <label data-bind="text: contactLabel"></label>
                        <label style="font-size:smaller" data-bind="text:contactRole"></label>
                        <img class="hasInfoPopup" data-bind="click: $root.editContact($root)"
                             data-info="Edit Contact" src="~/images/plus-inverted-large.png" style="height:16px;width:16px;float:right" />
</div>

上面的 editContact() 正在接收所有对象值,而不是只接收一个。

您正在绑定中调用 editContact。这意味着当 ko.applyBindings 运行时,knockout 将调用它一次(通过 $root)。假设 editContact 没有 return 函数,the click binding will then be ignored.

如果你传递 $root.editContact 而没有调用它,knockout 将在点击时使用两个参数调用它:当前对象 ($data) 和点击事件。

data-bind="click: $root.editContact"

如果你的editContact需要this引用$root,你可以使用.bind:

data-bind="click: $root.editContact.bind($root)"