TypeScriptとKnockoutJSを使用してhtmlHelper関数を作成し、メールのリストを編集してきました。
電子メールのリストは、電子メールと呼ばれるKnockout ObservableArrayであり、各アイテムに対するリンクを使用してそれらを削除します。これは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にバインドされています。これはビューモデルのメソッドです。
// remove item
public deleteItem(emailToDelete: string) {
// remove item from list
this.emails.remove(emailToDelete);
}
これはすべて、deleteItemメソッドが実行されるまで機能します。このメソッドが呼び出されたときの「this」は、配列内のアイテムであり、ビューモデルではありません。したがって、this.emailsはnull参照であり、失敗します。
TypeScriptがLambda構文をサポートしていることは知っていますが、これを記述する正しい方法が見つかりません(例はほとんどありません)。
それとも私が取ることができる別のアプローチがありますか?