相关疑难解决方法(0)

TypeScript和Knockout绑定到'this'问题 - 需要lambda函数吗?

我一直在使用TypeScript和KnockoutJS创建一个htmlHelper函数来编辑电子邮件列表.

电子邮件列表是一个叫做电子邮件的Knockout ObservableArray ,我有一个链接,每个项目都要删除它们.这是HTML片段:

<ul data-bind="foreach: emails" >
    <li>
        <a href="#" data-bind="click: $parent.deleteItem">Delete</a>
        &nbsp;<span data-bind="text: $data"></span>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

删除链接绑定到$ parent.deleteItem这是viewmodel中的方法:

// remove item
public deleteItem(emailToDelete: string) {
    // remove item from list
    this.emails.remove(emailToDelete);
}
Run Code Online (Sandbox Code Playgroud)

这一切都有效,直到执行deleteItem方法.调用此方法时的"this"是数组中的项,而不是视图模型.因此this.emails是一个空引用并失败.

我知道TypeScript支持Lambda语法,但我找不到正确的写入方法(那里有几个例子).

或者我可以采取不同的方法?

lambda knockout.js typescript

33
推荐指数
4
解决办法
9293
查看次数

标签 统计

knockout.js ×1

lambda ×1

typescript ×1