J'ai été la création d'un htmlHelper fonction à l'aide de la Machine et KnockoutJS pour éditer une liste de courriels.
La liste des e-mails est un knock-out ObservableArray appelé e-mails, et j'ai un lien en face de chaque élément à supprimer. C'est le fragment HTML:
<ul data-bind="foreach: emails" >
<li>
<a href="#" data-bind="click: $parent.deleteItem">Delete</a>
<span data-bind="text: $data"></span>
</li>
</ul>
Le lien de suppression est lié à $parent.deleteItem c'est une méthode dans le viewmodel:
// remove item
public deleteItem(emailToDelete: string) {
// remove item from list
this.emails.remove(emailToDelete);
}
Tout cela fonctionne jusqu'à ce que le deleteItem exécution de la méthode. Le "il" dans cette méthode, lorsqu'elle est appelée, est l'élément du tableau, et non pas le modèle de vue. Ainsi, cette.des e-mails est une référence null et échoue.
Je sais que la Machine prend en charge le Lambda de syntaxe mais je ne trouve pas la bonne façon d'écrire ceci (il y a quelques exemples).
Ou est-il une approche différente que j'ai pu prendre?