Cliquez sur la liaison de parent fonction foreach
J'ai le code html suivant:
<div data-bind="foreach: Contacts">
<a data-bind="click: $parent.Foo($data), text: Name">link</a>
</div>
<button data-bind="click: AddContacts">click</button>
et code js:
var viewModel = ko.mapping.fromJS({"Selected":null,"Contacts":[]});
viewModel.AddContacts = function(){
this.Contacts([{"Name":"C1"},{"Name":"C2"}]);
}
viewModel.Foo = function (contact) {
alert(contact.Name);
}
ko.applyBindings(viewModel);
Lorsque je clique sur le bouton, le Foo est appelée pour chaque contact. Je n'ai pas s'attendre à être appelé à tout jusqu'à ce que le lien est cliqué.
OriginalL'auteur filip | 2012-12-10
Vous devez vous connecter pour publier un commentaire.
Comme nemesv dit. Le paramètre est une fonction de référence. Donc, ce que vous faisiez était en utilisant le résultat de la fonction que l'événement click.
L'appel de votre fonction que vous passez inclura automatiquement les données pour cet article de sorte que vous n'avez pas besoin de passer manuellement:
http://jsfiddle.net/4cUv9/
OriginalL'auteur Richard Dalton