我一直在使用TypeScript和KnockoutJS创建一个htmlHelper函数来编辑邮箱列表.
邮件列表是一个名为emails的淘汰列表,我有一个针对每个邮件的链接来删除它们.这是HTML片段:
<ul data-bind="foreach: emails" >
<li>
<a href="#" data-bind="click: $parent.deleteItem">Delete</a>
<span data-bind="text: $data"></span>
</li>
</ul>
删除链接绑定到$parent.deleteItem这是viewmodel中的一种方法:
// remove item
public deleteItem(emailToDelete: string) {
// remove item from list
this.emails.remove(emailToDelete);
}
在执行deleteItem方法之前,所有这些都有效.调用此方法时,该方法中的"this"是数组中的项,而不是视图模型.因此.邮箱是空引用,并且失败.
我知道TypeScript支持Lambda语法,但我找不到正确的方法来编写它(很少有例子).
或者我可以采取不同的方法吗?