数据绑定点击甚至将当前对象传递给参数
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)"
我正在遍历对象,我只想在单击时发送当前对象。
<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)"